Repolode
gabrielcnr

gabrielcnr/pytest-datadir

テストデータのディレクトリを一時フォルダにコピーし、フィクスチャファイルを安全に読み書きできるpytestプラグインです。

スター
277
フォーク
28
未解決の Issue
8
最終コミット
4 日前

これは何?

pytest-datadirを使うと、テストと同じ場所にあるデータファイルをテストから利用できます。デフォルトでは、test_hello.pyというテストモジュールから、datadirフィクスチャを通じて対応するtest_hello/ディレクトリを利用でき、トップレベルのdata/フォルダはshared_datadirから参照できます。どちらのフィクスチャもpathlib.Pathオブジェクトを返すため、標準的なパス操作でファイルを読み込めます。

データディレクトリの内容は、テストごとに一時領域へコピーされます。そのため、元のフィクスチャやほかのテストに影響を与えずに、ファイルへの書き込みや変更ができます。バージョン1.7.0で追加されたlazy_datadirとlazy_shared_datadirは、joinpathまたは/演算子を通じてファイルにアクセスしたときにだけコピーするため、テストで使わない大きなディレクトリのコピーを避けられます。

主な機能

  • 01datadirフィクスチャを通じて、モジュール固有のデータディレクトリを利用できます。
  • 02shared_datadirフィクスチャを通じて、共有データディレクトリを利用できます。
  • 03データを一時フォルダにコピーし、元のファイルを変更せずに保てます。
  • 04lazy_datadirとlazy_shared_datadirを使うと、アクセスしたファイルだけをコピーできます。
  • 05各フィクスチャはpathlib.Pathオブジェクトを返します。

ユースケース

  • パーサーやファイル処理のテストで使うサンプル入力ファイルやフィクスチャを保存する。
  • 元のフィクスチャに触れずにファイルを作成・変更するテストを書く。
  • 共通のデータフォルダを使い、複数のテストモジュールでテストデータを共有する。

使う前に知っておきたいこと

  • リポジトリのメタデータではライセンスがNOASSERTIONと記載されていますが、READMEにはMITと記載されています。使用前にライセンスを確認してください。

収録されている特集

トピック

よくある質問

pytest-datadir とは?
テストデータのディレクトリを一時フォルダにコピーし、フィクスチャファイルを安全に読み書きできるpytestプラグインです。 pytest-datadirを使うと、テストと同じ場所にあるデータファイルをテストから利用できます。デフォルトでは、test_hello.pyというテストモジュールから、datadirフィクスチャを通じて対応するtest_hello/ディレクトリを利用でき、トップレベルのdata/フォルダはshared_datadirから参照できます。どちらのフィクスチャもpathlib.Pathオブジェクトを返すため、標準的なパス操作でファイルを読み込めます。
pytest-datadir は無料で使えますか?ライセンスは?
pytest-datadir は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pytest-datadir は今もメンテナンスされていますか?
活発にメンテナンス中。pytest-datadir の最終コミットは 2026年11月3日 です。
pytest-datadir は何に使えますか?
パーサーやファイル処理のテストで使うサンプル入力ファイルやフィクスチャを保存する。 元のフィクスチャに触れずにファイルを作成・変更するテストを書く。 共通のデータフォルダを使い、複数のテストモジュールでテストデータを共有する。
pytest-datadir はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/gabrielcnr/pytest-datadir

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト