如何使用Ruby测试/单元执行单个测试?

时间:2011-06-29 03:04:47

标签: ruby unit-testing testing testunit

有没有办法在ruby测试/单元框架下执行单个测试,而不是自动运行所有测试用例。我知道我可以通过使用Rake实现这一目标,但我现在还没准备好转向rake。

ruby unit_test.rb  #this will run all the test case
ruby unit_test.rb test1 #this will only run test1

2 个答案:

答案 0 :(得分:43)

您可以在命令行上传递-n选项来运行单个测试:

ruby my_test.rb -n test_my_method

其中'test_my_method'是您要运行的测试方法的名称。

答案 1 :(得分:8)

如果您寻找非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将从原始测试文件中加载。