Repolode
pytest-dev

pytest-dev/pytest-bdd

Gherkinのfeatureファイルをpytestのテストとして実行でき、別のテストランナーが不要なBDDフレームワークです。

スター
1,473
フォーク
255
未解決の Issue
87
最終コミット
3 日前

これは何?

pytest-bddはGherkin言語の一部を実装しており、チームはGiven、When、Thenのステップを含むfeatureファイルで要件を記述し、それらをPythonのテスト関数に紐付けられます。pytest上で動作するため、BDDシナリオをユニットテストや機能テストと並べて管理でき、同じCI環境を利用できます。

ステップの実装は通常のpytest関数なので、依存性注入によって既存のfixtureをステップに渡せます。また、Givenステップでtarget_fixtureを使って名前付きfixtureを設定すれば、共有のグローバルコンテキストを使わずに、セットアップ時の状態をステップ間で受け渡せます。ステップ引数の解析には、string、parse、cfparse、reの各パーサーを使用できます。

さらに、複数のexampleテーブルを使ったscenario outline、background、rule、datatable、docstringに対応しています。タグをmarkerにマッピングすれば、pytest -mや-kでシナリオを選択できます。

主な機能

  • 01Gherkinのfeatureファイルを標準的なpytestテストとして実行
  • 02pytestのfixtureをGiven、When、Thenのステップに注入
  • 03複数のexampleテーブルを使ったscenario outlineに対応
  • 04ステップ引数の解析にstring、parse、cfparse、regexの各パーサーを提供
  • 05Gherkinのタグをpytestのmarkerにマッピングし、テストを選択

ユースケース

  • 自然言語で記述したfeatureファイルを使い、プロダクト要件から受け入れテストを作成
  • 既存のpytest fixtureを再利用し、WebやAPIの動作に関する機能テストを実施
  • タグによるテスト選択を使い、Pythonのテストスイートをfeatureごとに整理

クイックスタート

  1. 1

    PyPIからpytest-bddをインストールする

    pip install pytest-bdd

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

  • 各featureファイルに含められるfeatureは1つだけです。
  • ステップはpytestに紐づくPython関数として実装する必要があるため、Pythonのテストスイートでのみ動作します。

収録されている特集

トピック

#bdd#testing#pytest#gherkin#python#bdd-framework#pytest-plugin#python3

よくある質問

pytest-bdd とは?
Gherkinのfeatureファイルをpytestのテストとして実行でき、別のテストランナーが不要なBDDフレームワークです。 pytest-bddはGherkin言語の一部を実装しており、チームはGiven、When、Thenのステップを含むfeatureファイルで要件を記述し、それらをPythonのテスト関数に紐付けられます。pytest上で動作するため、BDDシナリオをユニットテストや機能テストと並べて管理でき、同じCI環境を利用できます。
pytest-bdd は無料で使えますか?ライセンスは?
pytest-bdd は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pytest-bdd は今もメンテナンスされていますか?
活発にメンテナンス中。pytest-bdd の最終コミットは 2026年11月2日 です。
pytest-bdd は何に使えますか?
自然言語で記述したfeatureファイルを使い、プロダクト要件から受け入れテストを作成 既存のpytest fixtureを再利用し、WebやAPIの動作に関する機能テストを実施 タグによるテスト選択を使い、Pythonのテストスイートをfeatureごとに整理
pytest-bdd のインストール方法は?
PyPIからpytest-bddをインストールする: pip install pytest-bdd
pytest-bdd はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/pytest-dev/pytest-bdd

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

関連プロジェクト