위키득계정 ↗
기술

Pytest-asyncio

Pytest-asyncio기술
분류
비동기 시험 플러그인
사용 환경
pytest와 asyncio
발견 모드
strict와 auto
실행 단위
이벤트 루프 안의 시험 함수
Pytest-asyncio는 asyncio를 사용하는 Python 코루틴을 pytest 시험 함수로 실행하는 플러그인이다. 시험 안에서 비동기 함수를 await하고 이벤트 루프의 적용 범위를 구성할 수 있다.

비동기 시험의 실행

일반 시험처럼 결과를 검증하면서 코루틴을 await할 수 있다. 비동기 함수를 지원한다는 사실이 여러 시험을 동시에 실행한다는 뜻은 아니다. 기본적인 시험 실행은 순차적이며 각 시험은 배정된 이벤트 루프 안에서 동작한다.

루프의 범위

시험별 루프를 사용하거나 설정에 따라 클래스와 모듈 등에서 루프를 공유할 수 있다. 같은 비동기 자원을 공유하는 시험은 루프의 수명도 맞아야 한다. 범위를 넓히면 격리 수준이 달라지므로 픽스처와 자원의 사용 방식도 함께 고려한다.

시험 발견 모드

strict 모드에서는 명시한 asyncio 표시와 전용 비동기 픽스처를 처리한다. auto 모드는 비동기 시험에 표시를 자동 적용하고 비동기 픽스처를 관리한다. asyncio만 사용하는 프로젝트와 여러 비동기 체계를 함께 쓰는 프로젝트는 필요한 모드가 다를 수 있다.

관련 문서

Pytest-mock / Aioresponses / RESPX / Freezegun