用途:pytest-coder 面向编写或更新 Python 测试文件的场景,帮助按 pytest 的现代模式组织测试代码。其核心原则包括:每个测试采用 AAA(Arrange-Act-Assert)结构、测行为而非实现、测试相互独立、mock I/O 保持快速、命名描述场景、同时覆盖正常路径与边界情况。
主要能力:支持 pytest 的基础测试结构、fixtures(共享 fixture 放在 conftest.py,fixture 可设为 function、class、module、session 等作用域)、参数化测试(@pytest.mark.parametrize,可指定 ids)、mock(unittest.mock 的 Mock、patch、AsyncMock)、异步测试(@pytest.mark.asyncio)、异常断言(pytest.raises,可匹配消息并访问 exc_info 属性)、自定义标记(在 pytest.ini 或 pyproject.toml 的 [tool.pytest.ini_options] markers 中声明,用 pytest -m 选择运行)。资料还给出推荐的项目结构,将 tests/ 分为 conftest.py、unit/、integration/ 与 fixtures/。
使用方式:按资料示例,在测试中导入 pytest,使用 fixture 注入依赖,如 db、user_service、sample_user、existing_user;用 with patch(...) 或 Mock() 替换外部依赖;异步 fixture 使用 async def 并 yield;用断言验证结果。命令示例保持原样,如 pytest -m "not slow"、pytest -m "unit"。
适用场景与限制:适合为 Python 应用编写单元测试与集成测试。资料强调测试不应相互依赖、避免测试实现细节、避免单个测试断言过多、需显式测试异常、mock I/O 与使用内存数据库以加速。资料提到质量清单中的覆盖率 >90%,但未说明具体工具、收费、平台与安装步骤,这些内容暂未提供。