mcpField
P
python-testing

python-testing

github.com/athola测试与质量343103 次安装4 天前更新
代码仓库

关于 python-testing

python-testing 面向 Python 开发者,提供使用 pytest 编写测试、管理 fixture、测试异步逻辑和配置覆盖率的规范。内容按模块覆盖测试实现与基础设施。

主要功能

  1. 01pytest 单元与集成测试
  2. 02Fixture 与 mock 管理
  3. 03异步测试模式
  4. 04覆盖率与项目配置

适用场景

  1. 01为 Python 项目编写测试
  2. 02隔离外部依赖
  3. 03测试协程逻辑
  4. 04制定项目覆盖率标准

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/athola/claude-night-market --skill python-testing

安装后在 Claude Code 中输入/python-testing确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

modules/
async-testing.md
fixtures-and-mocking.md
test-infrastructure.md
test-quality.md
testing-workflows.md
unit-testing.md

详细介绍

Python 测试中心

pytest 配置、fixture 管理和 TDD 实施标准。

快速开始

  1. 依赖项:pip install pytest pytest-cov pytest-asyncio pytest-mock
  2. 配置:将以下内容添加到 pyproject.toml:
    [tool.pytest.ini_options]
    testpaths = ["tests"]
    addopts = "--cov=src"
    
  3. 验证:运行 pytest,确认能发现与 test_*.py 匹配的文件。

适用场景

  • 为 Python 3.9+ 项目编写单元测试和集成测试。
  • 使用 pytest-mock 或自定义 monkeypatch 隔离外部依赖。
  • 使用 pytest-asyncio 标记和事件循环管理来验证异步逻辑。
  • 配置项目级覆盖率阈值和报告。

不适用场景

  • 评估测试 质量——请改用 pensive:test-review
  • 基础设施测试 配置——请改用 leyline:pytest-config

模块

此技能采用模块化加载,以管理系统提示词预算。

核心实现
  • 参见 modules/unit-testing.md——AAA(Arrange-Act-Assert)模式、基础测试结构和异常验证。
  • 参见 modules/fixtures-and-mocking.md——请求级 fixture、参数化和边界模拟。
  • 参见 modules/async-testing.md——协程测试、异步 fixture 和并发验证。
基础设施和工作流
  • 参见 modules/test-infrastructure.md——目录规范、conftest.py 管理和覆盖率工具。
  • 参见 modules/testing-workflows.md——本地执行模式和 GitHub Actions 集成。
标准
  • 参见 modules/test-quality.md——识别常见反模式,例如宽泛捕获异常或在测试间共享状态。

退出标准

  • 测试采用 AAA 模式。
  • 覆盖率达到项目最低要求 80%。
  • 各项测试相互独立,不依赖执行顺序。
  • fixture 的作用域设置恰当(function、class 或 session),以 防止副作用。
  • 模拟仅限于外部系统边界。

故障排除

  • 测试发现:确认文件名符合 test_*.py 模式。使用 pytest --collect-only 调试发现路径。
  • 导入错误:确保本地源代码目录位于路径中,通常可通过使用可编辑模式安装来实现:pip install -e .。
  • 异步测试失败:确认已安装 pytest-asyncio,且异步测试使用 @pytest.mark.asyncio 装饰器或相应的自动模式配置。

评论

支持 Markdown