SuperAPI AI 工具集

python-testing

编程与开发

查看项目

更新于 10-15 23:47

技能介绍

用途:为 Python 应用提供系统化测试策略,基于 pytest 与 TDD 方法。适用于编写新 Python 代码、设计测试套件、审查测试覆盖率、搭建测试基础设施。

主要能力:

  1. TDD 流程:RED 写失败测试、GREEN 写最小实现、REFACTOR 重构并保持测试通过。
  2. 覆盖率要求:目标 80% 以上,关键路径 100%;用 pytest --cov=mypackage --cov-report=term-missing --cov-report=html 测量。
  3. 断言与异常:支持相等、真值、成员、比较、类型检查;用 with pytest.raises(ValueError, match="invalid input") 测试异常及属性。
  4. Fixtures:支持 setup/teardown(yield)、function/module/session 作用域、参数化 fixture、autouse、多 fixture 组合,共享 fixture 放 conftest.py。
  5. 参数化:@pytest.mark.parametrize 支持多组输入、多参数、ids 命名,以及参数化 fixture 跨数据库后端测试。
  6. 标记与选择:自定义 slow、integration、unit 标记,用 pytest -m "not slow" 等筛选,并在 pytest.ini 注册。
  7. Mock 与 patch:unittest.mock 的 patch、Mock、mock_open、autospec、PropertyMock,可模拟返回值、异常、上下文管理器与类实例。
  8. 异步测试:pytest-asyncio 的 @pytest.mark.asyncio、异步 fixture、assert_awaited_once。
  9. 副作用与文件:tempfile、tmp_path、tmpdir fixture 测试文件操作。
  10. 组织与配置:tests/unit、integration、e2e 目录结构,测试类分组,pytest.ini 配置 testpaths、python_files、addopts 等。

使用方式:安装 pytest 及 pytest-cov、pytest-asyncio 等插件后,按上述模式编写测试并运行 pytest;覆盖率用 --cov 参数。

适用场景:Python 库与应用、API 端点(FastAPI/Flask)、数据库操作、类方法、异步代码的测试。

限制:资料未提供具体安装命令、版本要求、价格或平台信息;示例中的 Database、User 等为示意对象,需按实际项目替换。