2011-08-08 2 views
3

다음과 같은 테스트가 있다고 상상해보십시오.Ruby의 Test :: Unit으로 메소드를 테스트하려면 어떻게해야합니까?

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 만 실행하려면 어떻게합니까?

+0

의 중복 가능성 [루비 테스트 : 단위 명령 줄 옵션?] (http://stackoverflow.com/questions/543588/ruby-testunit-command-line-options) –

답변

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" 
+0

감사합니다! 이걸 검색하기 위해 당신은 무엇을 사용 했습니까? 나는 단지 부적합한 결과를 얻는다. 이 문서에 대한 링크를 제공해 주시겠습니까? – Geo

+0

컴퓨터의 루비 설치 디렉토리로 가서 minitest/unit.rb 파일을 열었습니다. 그런 다음 OptionParser 사용법을 검색하여 대답을 찾았습니다. 온라인에서 코드를 검색 할 수 있습니다 : http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/minitest/unit.rb?view=markup. – DNNX

+0

Ruby 1.8 (Test :: Unit) 또는 Ruby 1.9.2 이상을 사용하고 있다면'ruby test.rb --help'를 사용할 수도 있습니다. 불행히도, 루비 1.9.1의 일반적인 설치는'ruby test.rb --help'를 할 때 아무 것도주지 않습니다. –

2

루비로 입력을 재생성 할 수 있습니까? 그런 다음 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 
+0

그것은 Mercurial의 복귀에 의존하기 때문에 오류가 발생하기 쉽습니다. 동시에, 나는 개발하고있다. 일종의 안전하지 않은, 나는 그것을 수동으로하는 것을 선호한다 :) – Geo