Как я могу протестировать только метод с помощью Ruby's Test :: Unit? - PullRequest
3 голосов
/ 08 августа 2011

Представьте, что у меня есть такой тест:

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 ]

3 голосов
/ 08 августа 2011

Используйте аргумент --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"
2 голосов
/ 08 августа 2011

Можете ли вы восстановить вход с помощью ruby?Тогда вы можете использовать метод установки.

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
...