Как выполнить один тест с использованием Ruby test / unit? - PullRequest
31 голосов
/ 29 июня 2011

Вместо автоматического запуска всех тестовых случаев, есть ли способ выполнить один тест в рамках ruby ​​test / unit framework. Я знаю, что могу добиться этого с помощью Rake, но я не готов переключиться на Rake в данный момент.

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

Ответы [ 2 ]

44 голосов
/ 29 июня 2011

вы можете передать опцию -n в командной строке для запуска одного теста:

ruby my_test.rb -n test_my_method

где 'test_my_method' - это имя метода теста, который вы хотите запустить.

8 голосов
/ 12 октября 2011

Если вы ищете решение без оболочки, вы можете определить 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 будет загружен из оригинала.тестовый файл.

...