2010-03-01 3 views
4

특정 클래스의 메소드 목록에 대해 assertEqual 테스트 사례를 실행 중입니다. 이러한 메서드는 문자열 형식에서 getattr()을 사용하여 호출 할 수있는 형식으로 확장됩니다.Python unittest에서 fail case의 매개 변수를 얻는 방법은 무엇입니까?

unittest에서 실패한 특정 방법을 어떻게 알 수 있습니까? 의미 : 어떻게 assert의 실패를 유발 한 특정 매개 변수를 표준 출력으로 인쇄 할 수 있습니까?

큰 호응을 얻었습니다.

감사

답변

5

당신은 그것을 반환 할 오류 메시지입니다 assertEqual 세 번째 인수 (당신이 자기를 계산하면 기술적으로 네 번째)을 전달할 수 있습니다. 그래서 다음은 당신이 찾고있는 것을 더 많거나 적게해야합니다 :

class MethodTest(TestCase): 
    def test_method(self): 
     obj = MyClass() 
     for method in "frob", "defrob", "refrob": 
      self.assertEqual(getattr(obj, method)(), 42, "obj.%s() is not equal to 42" % method) 
+0

빙고! 감사합니다 jcd. – chris

관련 문제