2014-11-19 2 views

답변

2

내가 그것을 할 거라고 방법은 다음과 같습니다

  1. test_condition_a = False라는 전역 변수는 테스트 케이스를 공유하게한다.
  2. test_a에 시도/catch 어설트를 실행하고 실패 할 경우 예외를 catch하여 테스트가 끝나기 전에 test_condition_a = True을 설정할 수 있습니다.
  3. test_a이 실패 할 때만 실행하려는 다른 모든 테스트 사례에 @unittest.skipIf(test_condition_a)을 사용하십시오.

두 번째 생각에 편집은, 위의 시험 순서는 무작위로 작동하지 않을. 최선의 방법은 이런 식으로해야 할 것입니다.

class Test(TestCase): 
    def setUp(self): 
     ... 

    @unittest.skip("Skip by default") 
    def testB(self): 
     #test code 

    def testA(self): 
     try: 
      #test code 
      return True 
     except Error: 
      return False 

    def testA_then_B(self): 
     if (self.testA()): 
      self.testB() 
+0

위 코드의 문제점은 testA가 실패 할 경우 testB를 실행하는 것을 처리하지 않는다는 것입니다. 나는 testA에서 예외를 잡을 수 있었지만, 그렇다면 어떤 시점에서 예외를 테스트 프레임 워크로 밀어 넣을지 모릅니다. – emperorcezar

+0

죄송합니다, 오타. 'if (self.testA()) self.testB()'. 어떻게 들리니? –

관련 문제