Repolode
pytest-dev

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. 1

    pip으로 플러그인을 설치하세요

    python -m pip install pytest-randomly
  2. 2

    pytest를 실행하면 플러그인이 테스트를 자동으로 섞고 시드 값을 출력합니다

    pytest

사용 전 알아둘 점

  • Python 3.11~3.15와 pytest 테스트 러너가 필요합니다.

포함된 컬렉션

토픽

#pytest#testing#python#test-ordering#random-seed#test-isolation

자주 묻는 질문

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 통계는 매일 갱신됩니다.

관련 프로젝트

최근 코드 변경의 영향을 받은 테스트만 다시 실행하고, 선택적으로 연속 감시 모드도 지원하는 pytest 플러그인입니다.

개발 도구#pytest#testing#python
1천+2 이번 주87PythonMIT활발히 관리됨업데이트 5일 전