用途:为 Python 模块生成符合项目最佳实践的 pytest 测试,适合创建单元测试与测试套件。
主要能力与原则: 最小化 mock,只 mock 外部依赖(API、数据库、文件 I/O),尽量用真实 Python 对象测试,避免 mock 内部逻辑掩盖破坏性变更;使用 @pytest.mark.parametrize 覆盖多组输入输出,保持测试简洁可读;把可复用 fixture 放在 conftest.py 中,由 pytest 自动发现;源文件与测试文件一一对应,如 src/game.py 对应 tests/test_game.py。
使用方式:先分析模块,用 Read 工具了解函数签名、参数、返回类型与预期行为、依赖、错误条件与边界情况以及代码库既有模式;再识别 fixture 与参数化,读取 tests/conftest.py 查看已有 fixture,规划新 fixture 放在 conftest.py(可复用)还是本地(测试专用),并按输入输出分组、覆盖边界条件(0、None、空、负数、最大值)及正常与错误路径;接着确定需要 mock 的内容,仅对外部 HTTP/API 调用、数据库连接、非 tmp_path 的文件 I/O、系统调用与环境变量、时间相关操作进行 mock,不 mock 纯函数、内部辅助函数、数据类与模型、业务逻辑及项目内其他模块;随后编写测试,按文件与类组织,包含正常路径、参数化用例和异常断言;最后把可复用 fixture 更新到 tests/conftest.py。
质量检查:覆盖所有公开方法/函数,测试边界情况与错误异常,相似测试参数化而非重复,fixture 放 conftest.py,mock 仅限外部依赖,测试名清晰描述行为,每个测试只验证一个行为,测试相互隔离无共享状态。
限制:资料仅给出流程与目录结构示例,未提供具体依赖安装命令、完整示例代码或定价信息,暂未提供。