运行单轨机组/功能测试
作为标题。运行单轨机组/功能测试
红宝石测试/功能/ whatevertest.rb不起作用,这需要我替换所有require 'test_helper'
到require File.dirname(__FILE__) + '/../test_helper'
。由于某些原因,大多数这些测试模板都有这样的问题,所以我宁愿看看是否有黑客可以解决它。
在Linux上?为什么不试试(cd test && ruby functionals/whatevertest.rb)
。请注意,括号非常重要,否则您的当前目录将更改为子目录。它所做的是fork
另一个shell,更改为其中的子目录,然后运行测试。
试试这个:
红宝石-Ilib:测试测试/函/ whatevertest.rb
我实际上运行它: 红宝石 - 我测试测试/功能/ whatevertest.rb 但它最终是同样的事情。 – Daemin 2010-01-18 15:30:44
为标题问题的答案将是:
ruby unit/post_test.rb -n selected_test # use to run only one selected test
但问题的体tvanfosson给出了很好的答案。
我得到了以下错误:`
它应该工作。 – 2012-09-05 10:20:04
以下的答案是基于:How to run single test from rails test suite?(计算器)
但是很简单,这里的答案:
ruby -I test test/functional/whatevertest.rb
对于特定functional
测试,运行:
ruby -I test test/functional/whatevertest.rb -n test_should_get_index
只需在测试名称中的空格处添加下划线(如上所示),或引用标题如下:
ruby -I test test/functional/whatevertest.rb -n 'test should get index'
注意,对于unit
测试只是在上面的例子中unit
更换functional
。如果你正在使用打捆来管理应用程序的gem依赖,你必须与bundle exec
执行测试如下:
bundle exec ruby -I test test/unit/specific_model_test.rb
bundle exec ruby -I test test/unit/specific_model_test.rb -n test_divide_by_zero
bundle exec ruby -I test test/unit/specific_model_test.rb -n 'test divide by zero'
最重要的,注意参数的-n
开关测试的名称和前缀之前的“测试”一词,根据是否引用该名称使用空格或下划线。原因是test
是一种方便的方法。以下两种方法是等效:
test "should get high" do
assert true
end
def test_should_get_high
assert true
end
...并且可以作为下面的任一被执行(它们是当量):
bundle exec ruby -I test test/integration/misc_test.rb -n 'test should get high'
bundle exec ruby -I test test/integration/misc_test.rb -n test_should_get_high
2最常规的方法和3是:
ruby -I test test/functional/your_test_file。RB
愿意花无数个小时后,我终于找到了解决办法(用Rails 3.0.7):在命令
ruby -I test test/functional/users_controller_test.rb -n "/the_test_name/"
注意,这仅适用于下划线(_)。它不适用于空格!
定义测试用空间为:
test "the test name" do
该解决方案使用模式匹配,这样你就可以使用测试名称的一部分。如果测试是“应该做foo”,那么下面的任何一个都可以。
ruby -I test test/functional/alerts_controller_test.rb -n "/foo/"
ruby -I test test/functional/alerts_controller_test.rb -n "/do_foo/"
以下(含空格)将无法正常工作:
ruby -I test test/functional/alerts_controller_test.rb -n "/do foo/"
如果你是on Rails的4,然后耙支持文件/目录参数。例如:
rake test test/unit/user_test.rb
rake test test/unit
这是一个很好的。我改变了一点(CD测试&&红宝石功能/ whatsoevertest.rb),所以它适用于相对目录结构。使完美的感觉:) – 2008-11-08 07:58:20
更新与您的修复。 – tvanfosson 2008-11-08 08:02:28