위키득계정 ↗
기술

Pytest-xdist

Pytest-xdist기술
분류
분산 시험 실행 플러그인
실행 구조
여러 작업자 프로세스
작업자 설정
명시적 수 또는 자동 선택
배분 기준
개별 시험과 파일 및 그룹 등
Pytest-xdist는 pytest 시험을 여러 작업자 프로세스에 나누어 실행하는 플러그인이다. 작업자 수와 배분 방식을 선택해 시험 실행을 구성한다.

프로세스의 분산

시험을 여러 프로세스에 배분해 실행한다. 작업자 수를 직접 지정하거나 CPU 정보를 바탕으로 선택할 수 있다. 프로세스를 늘려도 준비 작업과 공유 자원의 경합이 있으므로 실행 시간이 같은 비율로 줄어드는 것은 아니다.

그룹별 배분

기본 배분은 실행 순서를 보장하지 않는다. 파일이나 모듈, 클래스 또는 명시한 그룹을 기준으로 같은 작업자에서 실행하도록 구성할 수 있다. 여러 시험이 비싼 준비 작업을 공유한다면 배분 방식이 전체 실행 비용에 영향을 준다.

공유 자원의 고려

작업자가 나뉘어도 파일 경로나 외부 데이터베이스 같은 자원은 서로 충돌할 수 있다. 순서에 의존하는 시험은 분산 실행에서 다른 결과를 보일 수 있다. 작업자 수와 배분 정책을 고를 때는 시험의 독립성과 준비 자원의 경계를 함께 살펴야 한다.

관련 문서

Pytest-asyncio / Pytest-mock / Factory Boy / Model Bakery