pytest-xdist : 테스트 병렬 수행

Sangyeon·2021년 3월 13일
0

Pytest

목록 보기
8/12
post-thumbnail

Pytest의 유용한 플러그인을 정리한 포스팅 입니다.
1. pytest-xdist : 테스트 병렬 수행 (현재 글)
2. pytest-html : 테스트 결과 HTML 리포트로 출력
3. pytest-testrail : 테스트 결과 TestRail로 전송
4. pytest-rerunfailures : 실패한 테스트 재수행

설치

$ pip install pytest-xdist

기본 실행 명령어

-n auto로 수행 시, CPU 코어 개수에 따라 프로세스 개수를 자동으로 설정하여 테스트를 병렬 수행합니다.

$ pytest -n auto {테스트파일명}.py

입력한 프로세스 개수로 테스트를 병렬 수행합니다.

$ pytest -n {프로세스개수} {테스트파일명}.py

명령어 추가 옵션

-n 옵션은 순서 보장 없이 무작위로 실행합니다. 순서대로 실행하려면 아래 옵션을 추가해야합니다.

  • --dist=loadscope : 복수의 클래스를 병렬로 함수 순서대로 수행합니다.

  • --dist=loadfile : 복수의 테스트 파일을 병렬로 함수 순서대로 수행합니다.

주의사항

pytest-xdist는 각각의 worker가 고유의 환경을 가지고 있기 때문에 pytest.fixture에 설정된 scope과 관계없이 병렬로 수행됩니다. 그러므로, session scope의 fixture 함수를 선언하여도, session 단위로 1회 실행되는 것이 아니라 worker 개수만큼 실행됩니다.
https://medium.com/@kozyreva.hanna/pytest-xdist-with-session-scoped-fixture-b9884bd7bb29

Reference

https://pypi.org/project/pytest-xdist/

profile
I'm a constant learner.

0개의 댓글