SuperAPI AI 工具集

python-pytest-ops

测试与质量

查看项目

更新于 10-15 10:17

技能介绍

python-pytest-ops 是一个面向 Python 的 pytest 测试模式技能,来源于 0xdarkmatter/claude-mods,地址为 https://www.skills.sh/0xdarkmatter/claude-mods/python-pytest-ops。其定位是为编写有效的 Python 测试提供现代 pytest 模式参考。

用途 该技能用于在 Python 项目中应用 pytest 进行测试编写,覆盖单元测试与集成测试等场景。触发关键词包括:pytest、fixture、mark、parametrize、mock、conftest、test coverage、unit test、integration test、pytest.raises。

主要能力 技能内容按主题组织,包含以下模式:

  • 基础测试结构:使用 assert 断言,测试函数可带描述性名称与 docstring,断言可附带说明信息。
  • Fixtures:通过 @pytest.fixture 定义,支持 setup 与 teardown(使用 yield),测试函数按名称注入 fixture。
  • Fixture 作用域:function(默认,每个测试)、class(每个测试类)、module(每个测试文件)、session(整个测试运行)。
  • Parametrize:使用 @pytest.mark.parametrize 传入多组参数,支持多个 parametrize 装饰器叠加生成组合。
  • 异常测试:使用 pytest.raises 捕获异常并检查异常信息,支持 match 正则匹配。
  • Markers:skip、skipif、xfail 以及自定义 marker(需在 pytest.ini 注册)。
  • Mocking:使用 unittest.mock 的 Mock、patch、MagicMock,以及推荐的 pytest-mock(mocker)。
  • conftest.py:存放共享 fixture,可被所有测试使用。

使用方式 技能提供快速参考命令表,用于运行测试:pytest(运行全部)、pytest -v(详细输出)、pytest -x(首次失败即停止)、pytest -k "test_name"(运行匹配测试)、pytest -m slow(运行标记测试)、pytest --lf(重跑上次失败)、pytest --cov=src(覆盖率报告)、pytest -n auto(并行,需 pytest-xdist)。资料提示在项目环境中运行时应加 uv run 前缀(例如 uv run pytest -v),表中为简洁省略。

附加资源

  • 参考文档:./references/fixtures-advanced.md(工厂 fixture、autouse、conftest 模式)、./references/mocking-patterns.md(Mock、patch、MagicMock、side_effect)、./references/async-testing.md(pytest-asyncio 模式)、./references/coverage-strategies.md(pytest-cov、分支覆盖率、报告)、./references/integration-testing.md(数据库 fixture、API 测试、testcontainers)、./references/property-testing.md(Hypothesis 框架、策略、收缩)、./references/test-architecture.md(测试金字塔、组织、隔离策略)。
  • 脚本:./scripts/run-tests.sh(以推荐选项运行测试)、./scripts/generate-conftest.sh(生成 conftest.py 样板)。
  • 资源模板:./assets/pytest.ini.template(推荐 pytest 配置)、./assets/conftest.py.template(常用 fixture 模式)。

适用场景 适用于需要编写或组织 Python 测试的开发者,尤其是使用 pytest 进行单元测试、集成测试、参数化测试、异常测试、mock 模拟以及覆盖率统计的场景。

相关技能

  • python-typing-ops:类型安全的测试代码。
  • python-async-ops:异步测试模式(pytest-asyncio)。
  • 特定框架测试:python-fastapi-ops(TestClient、API 测试)、python-database-ops(数据库 fixture、事务)。

限制 资料未提供该技能的收费、价格、平台支持范围、具体效果或安装步骤等信息,暂未提供。