如何使用Ruby的Test :: Unit只测试一个方法?

时间:2011-08-08 10:20:10

标签: ruby unit-testing testunit

想象一下,我有这样的测试:

class MyUnitTest < Test::Unit::TestCase
  def test_first
    # test code here
  end

  def test_second
    # test code here
  end

  def test_third
    # test code here
  end
end

我的测试用例具有破坏性,我需要在测试之间重新生成输入。因此,一次只运行一个测试用例会很有用。目前,我的方法是评论我不想执行的测试,但肯定必须有更好的方法吗?

因此,例如,在执行测试时如何仅运行test_first

2 个答案:

答案 0 :(得分:3)

使用--name PATTERN参数来过滤掉您想要运行的测试名称。

D:\Projects>ruby test.rb
Loaded suite test
Started
...
Finished in 0.000000 seconds.

3 tests, 0 assertions, 0 failures, 0 errors, 0 skips

Test run options: --seed 39768

D:\Projects>ruby test.rb -n test_first
Loaded suite test
Started
.
Finished in 0.000000 seconds.

1 tests, 0 assertions, 0 failures, 0 errors, 0 skips

Test run options: --seed 53891 --name "test_first"

答案 1 :(得分:2)

你能用ruby重新生成输入吗?然后你可以使用setup-method。

gem 'test-unit', '>= 2.1.1' #startup
require 'test/unit'

class Test_setup < Test::Unit::TestCase
  def setup
    #Your regeneration of the input
    puts "Setup"
  end

  def teardown
    #Clean actions
    puts "End"
  end

  def test_1()
    puts "Testing setup 1"
  end      
end