用途:在编写 pytest 测试、搭建 fixture、参数化、mock 或审查测试代码时提供专家级指导。
主要能力与原则:强调测试独立性,每个测试必须隔离运行,不共享状态,使用 fixture 做 setup/teardown,避免类级可变状态,测试应不受执行顺序影响。命名规范:文件为 test_*.py 或 *test.py,函数为 test<description>(),类为 Test<ClassName>,fixture 使用描述性小写下划线命名。目录结构建议 tests/ 下含 conftest.py(共享 fixture)、unit/、integration/ 与 fixtures/(测试数据文件)。核心规则:使用普通 assert 语句(pytest 提供详细失败信息),实际可行时每个测试一个逻辑断言,覆盖边界情况如空输入、边界值、无效数据与错误,保持测试聚焦可读。
常用模式:@pytest.fixture 用于 setup/teardown 与依赖注入;@pytest.mark.parametrize 多输入运行;@pytest.mark.skip 临时跳过;@pytest.mark.xfail 预期失败(已知 bug);pytest.raises(Exception) 测试异常;pytest.approx(value) 浮点比较;mocker.patch() mock 依赖;conftest.py 跨模块共享 fixture。
常用命令:pytest -v(详细)、pytest -x(首次失败即停)、pytest --lf(重跑上次失败)、pytest -k "pattern"(按名称匹配)、pytest -m "marker"(运行标记测试)、pytest --cov=src(覆盖率报告)。
参考文档:fixture、作用域与工厂见 references/fixtures.md;参数化与多输入见 references/parametrization.md;mock、patch 与伪造依赖见 references/mocking.md;标记、异常、断言与异步见 references/patterns.md。
限制:资料未提供具体安装方式、版本要求、收费信息或平台支持范围,暂未提供。