如何从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
如果你想运行一个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