2013-07-09 4 views
1

작성된 순서대로 테스트를 실행할 수 있습니까?PyUnit 테스트를 순서대로 실행하십시오.

PyUnit은 테스트를 실행할 때마다 알파벳 순서에서 실행됩니다. 이는 TestB 후에 TestA를 작성한 경우에도 TestA가 TestA 전에 실행된다는 것을 의미합니다. 어느 것이 나를 위해 문제를 만들고 있습니다.

testA 전에 testB를 실행하고 싶습니다.

+0

을 테스트하고 문제가 SO에 여러 번 요청했기 때문에 BTW, 당신은 미래에 더욱 광범위하게 검색 기능을 사용합니다. http://stackoverflow.com/questions/3843171/unit-testing-with-dependencies-between-tests http://stackoverflow.com/questions/4095319/unittest-tests-order – Michal

답변

1

단위 테스트 인 경우 완전히 격리되어야하므로 해당 테스트의 설계 결함을 확인해야합니다.

당신이 정말로 당신이 파이썬이 달성의 세 가지 방법이보다 특정 순서를 사용하여, 어떤 이유로 필요한 경우

:

  1. 는 유닛 테스트에 사용 - 변경 방법을 정렬은 here을 설명했다.
  2. Proboscis 사용 - 다음 decorator @test (depends_on = [의존 목록] 목록)를 사용하여 here을 찾았습니다.
  3. 코를 사용하면 단위 테스트가 모듈 파일에 표시된 순서대로 실행됩니다. 더 많은 정보 here.
+0

안녕 얘들 아, 나는 답변을 통해 갔다. 그리고 이게 내가 가진거야. 1. unittest.TestLoader.sortTestMethodsUsing = lambda _, x, y : cmp (y, x) 또는 2를 사용하십시오. 이름이 순서대로 실행되도록 지정하십시오. 그러나 나는 이름을 바꾸고 싶지 않고 첫 번째 해결책을 찾기 위해 어떤 기능을 찾을 수는 없지만 그것이 작성된 순서를 실행할 수는 있습니다. 어떤 해결책 ??? –

+0

@GaurangShah 그리고 다른 두 가지 솔루션을 사용할 수없는 이유는 무엇입니까? – Michal

+0

지금은 unittest를 변경하고 싶지 않습니다. –

1

PyTest 주문 플러그인 here을 사용하여 해결책을 찾았습니다.

은 CLI에서 py.test YourModuleName.py -vv 시도하고 시험은 모듈 (첫째를 TestB 다음 종피)

내가 같은 일을했고, 나를 위해 잘 작동에 나타난 순서대로 실행됩니다.

참고 : PyTest 패키지를 설치하고 가져와야합니다.

-1

PyUnit은 스위트의 모든을 testcases를 수집하고 우리가 함수를 작성해야합니다 먼저 테스트 B를 실행하려는 테스트 A는 경우 테스트 B

전에 실행 예를 들어

알파벳 순서로 실행 TestLoaded를 사용 및 시험 B를 추가하고 다음

def suite(): 
    suite = unittest.TestSuite() 
    suite.addTest(SimpleTestCase('test_B')) 
    suite.addTest(SimpleTestCase('test_A')) 
    return suite  
+0

블로그 게시물, 라이브러리 또는 귀하가 참여하고있는 기타 외부 리소스에 링크 할 때마다 [이를 분명하게 나타내야합니다] (https://stackoverflow.com/help/promotion). –

관련 문제