作爲標題。運行單軌機組/功能測試
紅寶石測試/功能/ whatevertest.rb不起作用,這需要我替換所有require 'test_helper'
到require File.dirname(__FILE__) + '/../test_helper'
。由於某些原因,大多數這些測試模板都有這樣的問題,所以我寧願看看是否有黑客可以解決它。
作爲標題。運行單軌機組/功能測試
紅寶石測試/功能/ 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