pytest 후크 기능(1): 부팅 후크 및 디버깅 후크

머리말

pytest 프레임워크는 많은 후크를 제공합니다. 이러한 후크를 통해 우리는 pytest 사용 사례 수집, 사용 사례 실행, 보고서 출력 등의 다양한 단계에 개입할 수 있으며, 자체 사용 시나리오를 충족하기 위해 필요에 따라 해당 플러그인을 개발할 수 있습니다.

01 후크 기능이란?

pytest에서는 Hook 함수를 Hook 함수라고 하는데, pytest 프레임워크 개발자는 사용자가 더 나은 개발 확장을 위해 일부 기능을 예약해 두었습니다. 이러한 예약된 기능은 전체 테스트 실행 수명 주기의 특정 단계에서 자동으로 호출되고 실행됩니다. 아래와 같습니다:
[외부 링크 이미지 전송에 실패했습니다. 원본 사이트에 리칭 방지 메커니즘이 있을 수 있습니다. 이미지를 저장하고 직접 업로드하는 것이 좋습니다. (img-Nv6iC7uZ-1689820387589)(/api/attachments/426316)]

pytest의 후크 기능은 기능에 따라 부팅 후크, 초기화 후크, 사용 사례 수집 후크, 사용 사례 실행 후크, 보고 후크, 디버깅 후크 등 6가지 범주로 나뉩니다.

자세한 문서는 pytest 공식 문서 https://docs.pytest.org/en/latest/reference/reference.html?highlight=hook#hooks를 참조하세요.

02 부트훅

부팅 후크는 충분히 일찍 호출되며 주요 기능은 명령을 구문 분석하고 플러그인(내부 플러그인 및 setuptools 플러그인)을 등록하는 것입니다.

2.1 pytest_load_initial_conftests

매개변수:

  • early_config: pytest 구성 객체.
  • args: 명령줄에 전달된 인수입니다.
  • 파서: 명령줄에 옵션이 추가되었습니다.

트리거 시간:

  • 명령줄에서 pytest를 통해 명령을 실행하면 이 후크 함수가 먼저 실행됩니다.

기본 기능:

  • conftest.py 파일을 로드합니다.

주의점:

  • 이 후크 함수는 플러그인에 정의된 경우에만 호출되고, conftest에 정의된 경우에는 호출되지 않습니다.

2.2 pytest_cmdline_main

트리거 타이밍: 주 명령을 실행한 후 실행됩니다.

기본 기능:

  • 구문 분석 후크 pytest_cmdline_parse 명령을 호출하고 runtest_mainloop를 실행합니다.

매개변수

  • 구성: pytest 구성 객체

2.3 pytest_cmdline_parse

매개변수

  • args: 명령줄에 전달된 인수입니다.
  • 플러그인 관리자: 플러그인 관리자.

기본 기능:

  • 구성 개체를 초기화하고 지정된 매개변수를 구문 분석하는 데 사용됩니다.

주의점:

  • 이 후크 함수는 플러그인에 정의된 경우에만 호출되고, conftest에 정의된 경우에는 호출되지 않습니다.

03 디버깅 후크

임시 보고 또는 예외와의 상호 작용에 사용할 수 있는 몇 가지 후크가 있습니다.

  • pytest_internalerror(excrepr: ExceptionRepr, excinfo: ExceptionInfo[BaseException])에는 내부 오류가 필요합니다. INTERNALERROR 메시지를 sys.stderr에 직접 인쇄하는 대체 처리를 비활성화하려면 True를 반환합니다.
  • pytest_keyboard_interrupt(excinfo: ExceptionInfo[Union[KeyboardInterrupt, Exit]])에는 키보드 인터럽트가 필요합니다.
  • pytest_Exception_interact(node: Union[Item, Collector], call: CallInfo[Any], report: Union[CollectReport, TestReport]) 대화형으로 처리할 수 있는 예외가 발생할 때 호출됩니다.
  • pytest_enter_pdb(config: Config, pdb: pdb.Pdb)는 pdb.set_trace()를 호출합니다.

Supongo que te gusta

Origin blog.csdn.net/FloraCHY/article/details/131823436
Recomendado
Clasificación