나는 이렇게 학습한다/Debug

pytest _ 비동기 테스트 실행하기 (feat. auto 모드)

daco2020 2022. 10. 26. 23:20
반응형

pytest 에서 async 테스트 함수를 실행하는 방법에는 'strict 모드' 와 'auto 모드' 가 있다.

 

 

오늘은 손쉽게 비동기 테스트를 할 수 있는 'auto 모드' 에 대해 알아보자.

 

 

먼저 pytest-asyncio 를 설치한다.

pip install pytest-asyncio

 

 

아래 1번과 2번 중에 하나를 선택하여 파일과 코드를 추가한다. 

 

 

1번

# pytest.ini

[pytest]
asyncio_mode = auto

2번

# pyproject.toml

[tool.pytest.ini_options]
asyncio_mode = "auto"

 

이것으로 'auto 모드' 설정이 끝났다.

 

 

auto 모드는 pytest.ini 혹은 pyproject.toml 파일에 옵션 코드를 추가하여 async 테스트가 동작하도록 만든다.

 

이제 다시 pytest 를 실행해보면 비동기 테스트가 동작할 것이다.

 

 

 

 

 


 

 

 

추가,

 

strict 모드는 loop 픽스처, @pytest.mark.asyncio 이나 @pytest_asyncio.fixture 데코레이터, 또는 스크립트 상단에 pytestmark = pytest.mark.asyncio 코드를 추가하는 방법을 말한다.

 

 

auto 모드strict 모드 에 더 자세히 알고 싶다면 아래 레퍼런스를 참고하기 바란다.

 

 

 

GitHub - pytest-dev/pytest-asyncio: Pytest support for asyncio.

Pytest support for asyncio. Contribute to pytest-dev/pytest-asyncio development by creating an account on GitHub.

github.com

 

반응형