SuperAPI AI 工具集

pytest

测试与质量

查看项目

更新于 10-16 05:53

技能介绍

用途:为涉及 pytest 的任务提供测试编写与配置约定。核心原则是测试行为而非实现,测试名需说明被验证的行为。

主要能力:文件按 test_*.py 或 *test.py 发现,函数命名为 test<behavior>,类以 TestClassName 分组。测试遵循 Arrange-Act-Assert 三段结构,一测一动作,默认快速且相互隔离,慢测试用 @pytest.mark.slow 标记。

Fixtures:用 @pytest.fixture 替代 setUp/tearDown,按参数名显式注入,作用域默认 function,可扩展到 class、module、session;使用 yield 分离准备与清理,也可写夹具工厂。内置 fixture 包括 tmp_path、capsys、capfd、caplog、monkeypatch、request、pytestconfig。

参数化与标记:用 @pytest.mark.parametrize 生成多组用例,可叠加、可 indirect 传入 fixture,并用 pytest.param(..., id=) 命名;常用标记有 skip、skipif、xfail、usefixtures、filterwarnings,自定义标记需在 pyproject.toml 注册。

Mock 与断言:简单场景优先 monkeypatch,复杂场景用 unittest.mock 的 MagicMock、patch、AsyncMock,pytest-mock 提供 mocker;只在边界处 mock,尽量用依赖注入。断言直接写 assert,异常用 pytest.raises(match=),浮点用 pytest.approx,异步用 pytest-asyncio 的 @pytest.mark.asyncio。

配置与限制:在 pyproject.toml 的 [tool.pytest.ini_options] 设置 testpaths、addopts(如 -ra -q --strict-markers)、markers、filterwarnings、asyncio_mode 等;conftest.py 自动发现,按目录层级共享夹具。资料未提供具体收费、平台与价格信息。