SuperAPI AI 工具集

pytest

测试与质量

查看项目

更新于 10-15 20:13

技能介绍

用途:pytest 是成熟的 Python 测试框架,用于编写简单且可扩展的测试,使用普通 assert 语句即可断言,并提供 fixture、参数化、标记与丰富插件生态。

主要能力:fixture 支持 function、class、module、package、session 多种作用域,可用 yield 实现 setup/teardown,支持 autouse 与工厂式 fixture;参数化通过 @pytest.mark.parametrize 以不同输入运行同一测试,支持 ids 与 indirect;内置标记包括 skip、skipif、xfail,可注册自定义标记并按 -m 筛选;conftest.py 可放置共享 fixture 与钩子(如 pytest_addoption、pytest_collection_modifyitems)。

安装:pip install pytest>=9.0;可选插件 pip install pytest-cov>=5.0、pytest-mock、pytest-asyncio>=0.25、pytest-django>=4.8、pytest-xdist。pytest 9.0 要求 Python 3.10+,不再支持 3.9。

使用方式:测试文件需匹配 test_*.py 或 *test.py,类以 Test 开头,函数以 test 开头,可在 pytest.ini 或 pyproject.toml 的 [tool.pytest.ini_options] 中自定义发现规则、addopts、markers、required_plugins 等。

适用场景:单元、集成与端到端测试,异步与 Django 项目测试,覆盖率统计、mock、并行执行与超时控制。

限制:pytest 9.0 中 py.path.local 钩子用法需改用 pathlib.Path,混用 async 与 sync fixture 会报错,fixture 函数上使用 @pytest.mark.usefixtures 会报错,pytest.importorskip 配合 import 已移除,CI 环境会执行更严格的配置校验。更多异步、Django、工具插件、mock 与 CI、变异测试、基于属性测试的细节见对应参考文件。