pytest가 TestSomething이라는 클래스를 무시하도록 만드는 방법은 무엇입니까? [복제]
TestSomething
물론 클래스 이름 이 지정된 테스트 프레임 워크를 개발 중입니다. 그리고 pytest는 이러한 클래스를 가져 오자마자 "내가 인스턴스화하고 실행해야하는 것!"으로 간주하기 때문에 내 테스트가 실패한다는 것을 깨달았습니다. 그리고 이것은 절대적으로 작동하지 않습니다.
import pytest
from package import TestSomethingClass
pytest 테스트 파일에서 이러한 클래스를 직접 가져올 수 있습니까? 아니면 조명기를 통해 간접적으로 사용해야합니까?
같은 문제가 예외에도 적용됩니다.
with pytest.raises(TestsSomethingError):
답변
4 DavidJ
명시 적으로 비활성화
충돌하는 클래스 내 Test
에서 __test__
플래그를 설정하여 단어로 시작하여 pytest 가이 특정 클래스를 무시하도록 허용 할 수 False
있습니다.
class TestSomethingClass(object):
__test__ = False
def test_class_something(self, object):
pass
특색: https://github.com/pytest-dev/pytest/pull/1561
구성 파일
pytest.ini
파일 에서 규칙을 완전히 변경 하고 단어로 시작하는 모든 클래스 이름을 무시할 수도 있습니다 Example
. 그러나 우리는 잠재적으로 의도하지 않은 결과에 직면 할 수 있으므로 이에 대해 조언하지 않습니다.
#pytest.ini file
[pytest]
python_classes = !Example
Pytest 규칙
접두사가 붙은 테스트 함수 또는 클래스 외부 메서드 테스트
테스트 접두사가 붙은 테스트 함수 또는 Test 접두사가 붙은 테스트 클래스 내에서 메서드를 테스트합니다 ( init 메서드 없이 ).
출처: https://docs.pytest.org/en/stable/customize.html