테스트 모듈이 아닌 별도의 파이썬 파일에 모든 사용자 정의 어설 션을 정의했습니다. 예를 들어비 테스트 모듈에서 파이 테스트 재 작성을 수행하는 방법
: 우리가 직접 테스트에 assert
를 사용하는 경우 custom_asserts.py
class CustomAsserts(object):
def silly_assert(self, foo, bar):
assert foo == bar , 'some error message'
, 우리는 매우 유용 AssertionError를,에 대한 추가 정보를 얻을 것이다. 직접의 주장 사용 테스트
출력 :
> assert 'foo' == 'bar', 'some error message'
E AssertionError: some error message
E assert 'foo' == 'bar'
E - foo
E + bar
그러나 우리는 우리가 별도의 모듈에 정의 된 주장 메소드를 호출하는 경우, 추가 정보가 표시되지 않습니다 것을 발견했다.
from custom_asserts import CustomAsserts
asserts = CustomAsserts()
def test_silly():
asserts.silly_assert('foo', 'bar')
출력 테스트 실행 한 후 :
> assert 'foo' == 'bar', 'some error message'
E AssertionError: some error message
을 그리고 우리는 또한 pytest 워드 프로세서에서 이걸 발견 : pytest은 직접 테스트 수집 프로세스에 의해 발견 테스트 모듈을 다시 작성 Advanced assertion introspection
, 그래서 모듈이 아닌 테스트 모듈을 지원하는 것은 재 작성되지 않을 것입니다.
제 질문은 pytest가 테스트 모듈과 같은 다른 모듈에 동일한 어설 션을 다시 작성하도록하는 방법이 있습니까? 아니면 그것을 달성하기 위해 어떤 해킹 방법이 있습니까?
[자신의 질문에 답변하는 것이 좋습니다.] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/) 웹 UI는 심지어 소프트웨어를 개발하는 동안 발견 한 중요한 것을 문서화하고 공유하는 방법으로 질문을 작성하고 즉시 대답 할 수있는 방법을 제안합니다. – clacke