pytest가 TestSomething이라는 클래스를 무시하도록 만드는 방법은 무엇입니까? [복제]

Aug 16 2020

TestSomething물론 클래스 이름 이 지정된 테스트 프레임 워크를 개발 중입니다. 그리고 pytest는 이러한 클래스를 가져 오자마자 "내가 인스턴스화하고 실행해야하는 것!"으로 간주하기 때문에 내 테스트가 실패한다는 것을 깨달았습니다. 그리고 이것은 절대적으로 작동하지 않습니다.

import pytest
from package import TestSomethingClass

pytest 테스트 파일에서 이러한 클래스를 직접 가져올 수 있습니까? 아니면 조명기를 통해 간접적으로 사용해야합니까?

같은 문제가 예외에도 적용됩니다.

with pytest.raises(TestsSomethingError):

답변

4 DavidJ Aug 16 2020 at 03:59

명시 적으로 비활성화

충돌하는 클래스 내 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