테스트가 환경을 제대로 분해하지 못하는 경우에 발생합니다.
예 : 테스트의 설정 단계에서 테스트 데이터베이스에 일부 개체가 생성되고 일부 파일에 기록되거나 네트워크 연결이 열리는 등 상태가 제대로 재설정되지 않으므로 정보가 전달됩니다. 이후의 테스트는 입력 데이터에 대한 잘못된 가정으로 인해 실패 할 수 있습니다.
테스트 사이의 커플 링에 초점을 맞추기보다는 (위의 경우에는 실행 순서에 따라 다소 의의가 있습니다), 아마도 테스트를 테스트하는 루틴을 실행하는 것이 좋습니다 각 시험의 일상.
원래의 Test 클래스를 래핑하고 teardown 함수를 재정 의하여 테스팅이 주어진 테스트에 맞게 제대로 재설정되었다는 일종의 일반적인 테스트를 포함시켜 수행 할 수 있습니다.
뭔가 같은 : 테스트 파일
class NewTestClass(OriginalTestClass):
...
def tearDown(self, *args, **kwargs):
super(NewTestClass, self).tearDown(*args, **kwargs)
assert self.check_test_env_reset() is True, "IM A POLLUTER"
그리고 새와 함께 원래의 테스트 클래스의 import 문을 대체 :
# old import statement for OriginalTestClass
from new_test_class import NewTestclass as OriginalTestClass
이후에 테스트를 실행하기위한 오류가 발생할한다 오염을 일으키는 것들.
반면에 테스트가 다소 더러운 것을 허용하려면 실패한 테스트에 대한 테스트 환경의 잘못된 설정으로 문제를 확인하십시오.
실패한 테스트는 잘못 작성된 테스트이므로 개별적으로 수정해야합니다.
두 가지 관점은 어느 정도는 음양이고 어느 쪽이든 채택 할 수 있습니다. 가능한 한 후자가 더 강력합니다.
안녕하세요 Jāzeps, 여기에서 당신을보고 있습니다! 'pytest-random-order'가 좋아 보인다. 나는 그것을 조사 할 것이다. – wim
하하, 안녕하세요. @wim thanks! – jbasko