Answers:
注意: 这不会通过进行测试rake
。因此,您拥有的任何代码都Rakefile
不会执行。
要运行一个测试,请从rails项目的主目录中使用以下命令:
ruby -I test test/unit/my_model_test.rb -n test_name
这将运行一个在指定文件的MyModelTest类中定义的名为“名称”的测试。通过使用测试名称,在其前面加上单词“ test”,然后用下划线将单词分开来形成test_name。例如:
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
只是通过第二次测试
ruby -I test test/unit/my_model_test.rb -n test_invalid_with_bad_attributes
0 tests, 0 assertions, 0 failures, 0 errors
。Rails 3.0.7。
-n "/good/"
。外壳转义总是很有趣,因此我倾向于坚持使用简单的正则表达式,但比始终写出完整的测试名称要容易得多。
test/
文件夹的子目录中。例如,如果我想运行测试,activesupport/test/core_ext/array_ext_test.rb
我应该排在activesupport/
第一位。
-n "/good/"
工作。
运行一个测试文件:
rake test TEST=tests/functional/accounts_test.rb
运行一个单一的测试在测试文件:
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n /paid accounts/"
(来自@Puhlze的评论。)
rake test TEST=tests/functional/accounts_test.rb TESTOPTS="-n '/paid accounts/'"
(/paid accounts/
用单引号引起来)
对于导轨5:
rails test test/models/my_model.rb
bin/rails test test/models/user_test.rb:27
感谢@James,答案似乎是:
rails test test/models/my_model.rb:22
假定22是给定测试的行号。根据rails帮助:
$ rails test --help
您可以通过在文件名后附加行号来运行单个测试:
bin/rails test test/models/user_test.rb:27
另外,请注意,您的测试应继承自ActionDispatch :: IntegrationTest,以使其正常工作(这是我的错误):
class NexApiTest < ActionDispatch::IntegrationTest
.
.
.
在导轨5中
我使用这种方式来运行单个测试文件(所有测试都在一个文件中)
rails test -n /TopicsControllerTest/ -v
最好的方法是直接查看指南: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
如果要运行单个测试,则可以将它们作为常规Ruby脚本运行
ruby actionmailer/test/mail_layout_test.rb
您还可以通过- cd
进入目录并rake test
在其中运行,来运行整个套件(例如ActiveRecord或ActionMailer)。
require File.join(File.dirname(__FILE__), '..', 'test_helper')
cd
-ing 起作用。只是要清楚一点(我不确定我是否读错了这个,但您确实说过“生成的测试文件”),这是针对Rails库本身的,而不是针对Rails项目的。
Rails文件夹
bundle install
bundle exec ruby -I"activerecord/test" activerecord/test/cases/relation/where_test.rb
请注意,您需要加载适当的文件夹:“ activerecord / test”(在此处进行测试)