pytest-dev/pytest-randomly
テスト順をランダムにシャッフルし、乱数シードをリセットして、順序やランダムデータに起因する失敗を再現できるpytestプラグイン。
- スター
- 724
- フォーク
- 39
- 未解決の Issue
- 5
- 最終コミット
- 4 日前
これは何?
pytest-randomlyは、Pythonのテストフレームワークpytest用のプラグインです。デフォルトでは、モジュール、クラス、個々の関数の順にテストをシャッフルし、テスト間に隠れた依存関係がないか見つけやすくします。
各テスト実行時にはベースとなる乱数シードが表示されます。このシードを--randomly-seedに渡すか、値にlastを指定すると、同じ順序とデータで再実行できます。各テストのsetup、run、teardownの開始時に、プラグインはベースシードとテストIDからPythonのグローバル乱数シードをリセットするため、ランダムデータに依存するテストも再現可能です。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と併用可能
ユースケース
- 別のテストが先に実行された場合にだけ成功するテストを見つける
- テスト順やランダムなテストデータが原因の不安定な失敗を再現する
- factoryで生成したデータを使う、再現性が必要なテストを書く
- 同じシードで単一モジュールを再実行し、テスト間の状態汚染を調査する
クイックスタート
- 1
pipでプラグインをインストールします
python -m pip install pytest-randomly - 2
pytestを実行すると、プラグインがテストを自動的にシャッフルし、シード値を表示します
pytest
使う前に知っておきたいこと
- Python 3.11〜3.15とpytestテストランナーが必要です。
収録されている特集
トピック
よくある質問
- pytest-randomly とは?
- テスト順をランダムにシャッフルし、乱数シードをリセットして、順序やランダムデータに起因する失敗を再現できるpytestプラグイン。 pytest-randomlyは、Pythonのテストフレームワークpytest用のプラグインです。デフォルトでは、モジュール、クラス、個々の関数の順にテストをシャッフルし、テスト間に隠れた依存関係がないか見つけやすくします。
- pytest-randomly は無料で使えますか?ライセンスは?
- pytest-randomly は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- pytest-randomly は今もメンテナンスされていますか?
- 活発にメンテナンス中。pytest-randomly の最終コミットは 2026年11月2日 です。
- pytest-randomly は何に使えますか?
- 別のテストが先に実行された場合にだけ成功するテストを見つける テスト順やランダムなテストデータが原因の不安定な失敗を再現する factoryで生成したデータを使う、再現性が必要なテストを書く 同じシードで単一モジュールを再実行し、テスト間の状態汚染を調査する
- 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パッケージ。
573186PythonMIT活発にメンテナンス更新 5 時間前