Repolode
pytest-dev

pytest-dev/pytest-bdd

一个将 Gherkin 特性文件作为 pytest 测试运行的 BDD 框架,无需单独的测试运行器。

Star
1,473
Fork
256
未关闭 Issue
87
最近提交
5天前

这是什么?

pytest-bdd 实现了 Gherkin 语言的一个子集,让团队用 Given、When、Then 步骤编写需求特性文件,并将其绑定到 Python 测试函数上。它基于 pytest 运行,BDD 场景可以与单元测试和功能测试放在一起,共用同一套 CI 配置。

步骤实现就是普通的 pytest 函数,因此已有的 fixture 可以通过依赖注入传入步骤。given 步骤还可以用 target_fixture 设置命名 fixture,让状态在步骤之间传递,而无需共享全局上下文。步骤参数支持 string、parse、cfparse 和 re 等解析器。

此外还支持带多个示例表的场景大纲、Background、Rule、数据表和文档字符串,并能将 Gherkin 标签映射为 pytest 标记,方便用 pytest -m 或 -k 筛选场景。

核心功能

  • 01将 Gherkin 特性文件作为标准 pytest 测试运行
  • 02可将 pytest fixture 注入 Given、When、Then 步骤
  • 03支持带多个示例表的场景大纲
  • 04提供 string、parse、cfparse 和正则等步骤参数解析器
  • 05将 Gherkin 标签映射为 pytest 标记,便于筛选测试

适用场景

  • 根据产品需求,用自然语言特性文件编写验收测试
  • 复用已有 pytest fixture 编写 Web 或 API 行为的功能测试
  • 按特性组织 Python 测试套件,并通过标签筛选运行

快速上手

  1. 1

    从 PyPI 安装 pytest-bdd

    pip install pytest-bdd

使用前须知

  • 每个 feature 文件只能包含一个 feature。
  • 步骤必须以 Python 函数形式实现并依赖 pytest,因此仅适用于 Python 测试项目。

收录于专题

标签

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

常见问题

pytest-bdd 是什么?
一个将 Gherkin 特性文件作为 pytest 测试运行的 BDD 框架,无需单独的测试运行器。 pytest-bdd 实现了 Gherkin 语言的一个子集,让团队用 Given、When、Then 步骤编写需求特性文件,并将其绑定到 Python 测试函数上。它基于 pytest 运行,BDD 场景可以与单元测试和功能测试放在一起,共用同一套 CI 配置。
pytest-bdd 可以免费使用吗?用的什么许可证?
pytest-bdd 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
pytest-bdd 还在维护吗?
活跃维护中。pytest-bdd 最近一次提交是在 2026年11月2日。
pytest-bdd 适合用来做什么?
根据产品需求,用自然语言特性文件编写验收测试 复用已有 pytest fixture 编写 Web 或 API 行为的功能测试 按特性组织 Python 测试套件,并通过标签筛选运行
pytest-bdd 怎么安装和运行?
从 PyPI 安装 pytest-bdd: pip install pytest-bdd
在哪里获取 pytest-bdd?
源代码和安装说明在 GitHub 上:https://github.com/pytest-dev/pytest-bdd

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目