如何从railstesting套件运行单一testing?

rake test ANYTHING似乎没有帮助

PS问题是关于轨道本身,而不是rails应用程序。

注意: 这不通过rake运行testing。 所以Rakefile任何代码都不会被执行。

要运行单个testing,请在rails项目的主目录中使用以下命令:

 ruby -I test test/unit/my_model_test.rb -n test_name 

这将运行一个名为“name”的testing,在指定文件的MyModelTest类中定义。 test_name是通过testing名称形成的,前面加上单词“test”,然后用下划线分隔单词。 例如:

 class MyModelTest < ActiveSupport::TestCase test "valid with good attributes" do # do whatever you do end test "invalid with bad attributes" do # do whatever you do end end 

您可以通过以下方式运行两个测

 ruby -I test test/unit/my_model_test.rb 

并通过第二个testing

 ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes 

运行一个testing文件

 rake test TEST=tests/functional/accounts_test.rb 

在testing文件中运行单个testing

 rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/" 

(来自@Puhlze的评论)

对于导轨5:

 rails test test/models/my_model.rb 

要在实际的Rails套件中运行单个testing:

 bundle exec ruby -I"railties/test" actionpack/test/template/form_options_helper_test.rb 

那是我的一个愚蠢的午夜问题。 Rails好心地打印它在rake test执行的命令。 其余的是剪切和粘贴练习。

 ~/projects/rails/actionpack (my2.3.4)$ ruby -I"lib:test" "/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "test/controller/base_test.rb" 

在导轨5中,

我用这种方式运行单个testing文件(所有的testing在一个文件中)

 rails test -n /TopicsControllerTest/ -v 

看看这里https://stackoverflow.com/a/41183694/3626659

如果你想运行一个testing,你可以运行它们作为一个普通的Ruby脚本

 ruby actionmailer/test/mail_layout_test.rb 

你也可以通过cd -ing来运行整个套件(例如ActiveRecord或者ActionMailer)到里面的目录并运行rake test

感谢@詹姆斯,答案似乎是:

 rails test test/models/my_model.rb:22 

假设22是给定testing的行号。 根据rails的帮助:

  $ rails test --help 

您可以通过将行号附加到文件名来运行单个testing:

  bin/rails test test/models/user_test.rb:27 

此外,请注意,你的testing应该从ActionDispatch :: IntegrationTestinheritance这个工作(这是我的错误):

 class NexApiTest < ActionDispatch::IntegrationTest . . . 

首先,访问你想testing的lib文件夹(这很重要),然后运行:

 ~/Projects/rails/actionview (master)$ ruby -I test test/template/number_helper_test.rb 

最好的方法是直接看指南: http : //guides.rubyonrails.org/contributing_to_ruby_on_rails.html#running-tests

 cd actionmailer bundle exec ruby -w -Itest test/mail_layout_test.rb -n test_explicit_class_layout