pytest-dev/pytest-randomly
테스트 순서를 무작위로 섞고 난수 시드를 초기화해, 순서나 무작위 데이터로 발생한 실패를 재현할 수 있는 pytest 플러그인입니다.
- 스타
- 724
- 포크
- 39
- 열린 이슈
- 5
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
pytest-randomly는 pytest Python 테스트 프레임워크용 플러그인입니다. 기본적으로 모듈, 클래스, 개별 함수 순으로 테스트 순서를 섞어 테스트 간에 숨겨진 의존성이 있는지 드러냅니다.
각 테스트 실행 시 기본 난수 시드가 출력되며, 이 시드를 --randomly-seed에 전달하거나 값으로 last를 지정하면 같은 순서와 데이터를 재현할 수 있습니다. 각 테스트의 setup, run, teardown이 시작될 때마다 플러그인은 기본 시드와 테스트 ID를 사용해 Python의 전역 random 시드를 초기화하므로, 무작위 데이터에 의존하는 테스트도 반복 실행 시 같은 결과를 냅니다. factory boy, Faker, Model Bakery, NumPy의 레거시 생성기, Polyfactory의 난수 상태도 초기화합니다.
두 동작은 플래그로 각각 비활성화할 수 있으며, pytest_randomly.random_seeder 진입점을 통해 사용자 지정 난수 생성기도 지원합니다. pytest-xdist와 함께 사용할 수 있습니다.
핵심 기능
- 01모듈, 클래스, 함수 순으로 테스트 순서를 섞습니다
- 02--randomly-seed로 시드를 지정할 수 있으며, 'last'를 사용하면 이전 시드를 재사용합니다
- 03각 테스트의 setup, run, teardown 전에 난수 시드를 초기화합니다
- 04factory boy, Faker, Model Bakery, NumPy, Polyfactory의 난수 상태를 초기화합니다
- 05진입점을 통해 사용자 지정 난수 생성기를 지원합니다
- 06pytest-xdist와 함께 사용할 수 있습니다
활용 사례
- 다른 테스트가 먼저 실행될 때만 통과하는 테스트 찾기
- 테스트 순서나 무작위 테스트 데이터로 발생한 불안정한 실패 재현하기
- 생성된 데이터를 사용하면서도 반복 실행 시 결과가 같아야 하는 테스트 작성하기
- 같은 시드로 모듈 하나를 다시 실행해 테스트 간 상태 오염을 디버깅하기
빠른 시작
- 1
pip으로 플러그인을 설치하세요
python -m pip install pytest-randomly - 2
pytest를 실행하면 플러그인이 테스트를 자동으로 섞고 시드 값을 출력합니다
pytest
사용 전 알아둘 점
- Python 3.11~3.15와 pytest 테스트 러너가 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- pytest-randomly은(는) 무엇인가요?
- 테스트 순서를 무작위로 섞고 난수 시드를 초기화해, 순서나 무작위 데이터로 발생한 실패를 재현할 수 있는 pytest 플러그인입니다. pytest-randomly는 pytest Python 테스트 프레임워크용 플러그인입니다. 기본적으로 모듈, 클래스, 개별 함수 순으로 테스트 순서를 섞어 테스트 간에 숨겨진 의존성이 있는지 드러냅니다.
- pytest-randomly은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pytest-randomly은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pytest-randomly은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pytest-randomly의 마지막 커밋은 2026년 11월 2일입니다.
- pytest-randomly은(는) 어디에 사용할 수 있나요?
- 다른 테스트가 먼저 실행될 때만 통과하는 테스트 찾기 테스트 순서나 무작위 테스트 데이터로 발생한 불안정한 실패 재현하기 생성된 데이터를 사용하면서도 반복 실행 시 결과가 같아야 하는 테스트 작성하기 같은 시드로 모듈 하나를 다시 실행해 테스트 간 상태 오염을 디버깅하기
- pytest-randomly는 어떻게 설치하나요?
- pip으로 플러그인을 설치하세요: python -m pip install pytest-randomly pytest를 실행하면 플러그인이 테스트를 자동으로 섞고 시드 값을 출력합니다: pytest
- pytest-randomly은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pytest-dev/pytest-randomly
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
coverage.py 결과를 coveralls.io에 업로드해 커버리지 통계를 온라인에 공개하는 Python 패키지입니다.