위키득계정 ↗
기술

Pytest-randomly

Pytest-randomly기술
분류
시험 순서 및 난수 제어 플러그인
적용 환경
pytest
재현 기준
기본 난수 시드
분산 연동
pytest-xdist
Pytest-randomly는 pytest 시험의 실행 순서를 섞고 난수 상태를 재설정하는 플러그인이다. 시험 사이의 숨은 의존성을 찾고 무작위 입력으로 발생한 실패를 재현하는 데 활용한다.

실행 순서의 변화

모듈과 클래스, 함수 순서를 단계별로 섞는다. 특정 시험이 이전 시험이 만든 상태에 의존한다면 순서를 바꿨을 때 실패가 드러날 수 있다. 순서를 섞는 작업은 의존성을 찾아내기 위한 것이며 상태를 자동으로 정리해 주는 기능은 아니다.

난수의 재현

실행에 사용할 기본 시드를 출력하고 같은 시드를 다시 지정할 수 있다. 각 시험의 준비와 실행, 정리 단계에 사용할 난수 상태는 기본 시드와 시험 식별자 등을 바탕으로 정해진다. 실패를 조사할 때는 시드와 함께 당시 코드 및 시험 구성을 유지한다.

연동 범위

Faker와 Factory Boy 등 일부 라이브러리의 난수 상태도 제어하며 추가 생성기를 등록할 수 있다. 모든 독립 난수 생성기가 자동으로 포함되는 것은 아니다. 시험 순서 섞기와 시드 재설정은 각각 끌 수 있어 원인을 나누어 조사할 수 있다.

관련 문서

Faker Python 라이브러리 / Factory Boy / Polyfactory / Pytest-xdist