是否可以在MiniTest中运行单个testing?

我可以在一个文件中运行所有的testing:

rake test TEST=path/to/test_file.rb 

但是,如果我想在该文件中只运行一个testing,我该怎么做呢?

我正在寻找类似的function:

 rspec path/to/test_file.rb -l 25 

    我在寻找与rspec path / to / file.rb -l 25类似的function

    对! 使用Nick Quaranto的“m”gem 。 有了它,你可以说:

     m spec/my_spec.rb:25 

    该命令应该是:

     % rake test TEST=test/test_foobar.rb TESTOPTS="--name=test_foobar1 -v" 

    你有没有尝试过:

     ruby path/to/test_file.rb --name test_method_name 

    这是我在testing中关于string name definition麻烦之一。

    当你有:

     def test_my_test end 

    你总是知道你的testing是如何命名的,所以你可以像这样执行它:

     ruby my_test -n test_my_test 

    但是当你有这样的东西:

     it "my test" do end 

    你永远不知道这个testing是如何在内部命名的,所以你不能直接使用-n选项。

    要知道这个testing是如何在内部命名的,你只有一个select:执行整个文件,试图找出日志中的内容。

    我的解决方法是(暂时)添加一些非常独特的testing名称:

     it "my test xxx" do end 

    然后使用“-n”参数的RegEx版本,如:

     ruby my_test.rb -n /xxx/ 

    不需要gem: ruby -Itest test/lib/test.rb --name /some_test/

    资料来源: http : //blog.arvidandersson.se/2012/03/28/minimalicous-testing-in-ruby-1-9

    您可以使用它来运行一个文件:

     rake test TEST=test/path/to/file.rb 

    我也用了

     ruby -I"lib:test" test/path/to/file.rb 

    为了更好的展示。

    有两种方法可以做到这一点:

    1. 手动运行testing(见Andrew Grimm的答案)。
    2. Hack Rake::TestTask目标使用不同的testing加载器。

    Rake::TestTask (从rake 0.8.7开始)理论上可以通过"TESTOPTS=blah-blah"命令行选项将其他选项传递给MiniTest::Unit ,例如:

     %rake test TEST = test / test_foobar.rb TESTOPTS =“ -  name test_foobar1 -v”
    

    实际上,由于rake内部的原因,选项--name (testing名称的filter)将不起作用。 要解决这个问题,你需要在Rakefile中写一个小猴子补丁:

     # overriding the default rake tests loader class Rake::TestTask def rake_loader 'test/my-minitest-loader.rb' end end # our usual test terget Rake::TestTask.new {|i| i.test_files = FileList['test/test_*.rb'] i.verbose = true } 

    这个补丁需要你创build一个文件test/my-minitest-loader.rb

     ARGV.each { |f| break if f =~ /^-/ load f } 

    要打印Minitest的所有可能选项,请键入

      %ruby -r minitest / autorun -e'' -  --help 

    如果您在Rails 5中使用MiniTest,则在单个文件中运行所有testing的最佳方法是:

     bin/rails test path/to/test_file.rb 

    而对于单一的testing(例如25行):

     bin/rails test path/to/test_file.rb:25 

    请参阅http://guides.rubyonrails.org/testing.html#the-rails-test-runner

    你实际上只能运行这个名字甚至是数字:

     -n, --name PATTERN Filter run on /pattern/ or string. 

    例如:

     ruby spec/stories/foo_spec.rb --name 3 FAIL (0:00:00.022) test_0003_has foo Expected: "foo" Actual: nil 

    请参阅: https : //github.com/seattlerb/minitest

    如果您正在使用minitest转换gem,请确保使用Turn.config.pattern选项,因为Turn Minitest runner不尊重ARG中的Turn.config.pattern选项。

    我正在寻找类似的function:

    rspec path / to / test_file.rb -l 25

    有一个gem,正是这样做: minitest-line

     gem install minitest-line ruby test/my_file -l 5 

    https://github.com/judofyr/minitest-line#minitest-line