26
而不是自動運行所有的測試用例,有沒有辦法在ruby測試/單元框架下執行單個測試。我知道我可以通過使用Rake來實現這一目標,但我現在還沒有準備好轉換爲Rake。如何使用Ruby測試/單元執行單個測試?
ruby unit_test.rb #this will run all the test case
ruby unit_test.rb test1 #this will only run test1
而不是自動運行所有的測試用例,有沒有辦法在ruby測試/單元框架下執行單個測試。我知道我可以通過使用Rake來實現這一目標,但我現在還沒有準備好轉換爲Rake。如何使用Ruby測試/單元執行單個測試?
ruby unit_test.rb #this will run all the test case
ruby unit_test.rb test1 #this will only run test1
你可以通過-n選項在命令行中運行一個測試:
ruby my_test.rb -n test_my_method
其中「test_my_method」是你想運行測試方法的名稱。
如果您尋找非shell解決方案,您可以定義一個TestSuite。
實施例:
gem 'test-unit'
require 'test/unit'
require 'test/unit/ui/console/testrunner'
#~ require './demo' #Load the TestCases
# >>>>>>>>>>This is your test file demo.rb
class MyTest < Test::Unit::TestCase
def test_1()
assert_equal(2, 1+1)
assert_equal(2, 4/2)
assert_equal(1, 3/2)
assert_equal(1.5, 3/2.0)
end
end
# >>>>>>>>>>End of your test file
#create a new empty TestSuite, giving it a name
my_tests = Test::Unit::TestSuite.new("My Special Tests")
my_tests << MyTest.new('test_1')#calls MyTest#test_1
#run the suite
Test::Unit::UI::Console::TestRunner.run(my_tests)
在現實生活中,測試類MyTest的將從原始測試文件中加載。
+1正是我想要的。但是我只在6分鐘後才接受它.. – pierrotlefou
如果你喜歡長選項,完整的選項是'--name'。 –
還支持正則表達式:ruby my_test.rb -n /test_.*/ – imwilsonxu