SuperAPI AI 工具集

pytest

测试与质量

查看项目

更新于 10-15 20:32

技能介绍

用途:pytest 是 Python 事实标准测试框架,以去除样板为核心:测试是文件名 test_*.py 或 test.py 中名为 test 的普通函数,检查用裸 assert,依赖按名称请求并注入,无需继承 TestCase、覆写 setUp/tearDown 或记忆 assertEqual 系列。相比 unittest,它用普通函数替代表方法,用 assert 与 pytest.raises 替代表断言,用 @pytest.fixture 替代 setUp/tearDown,用 @pytest.mark.parametrize 替代逐输入复制测试体,用 skip/skipif/xfail 替代手工跳过逻辑,用 conftest.py 中自动发现的 fixture 替代共享基类/mixin。核心用法:@pytest.fixture 定义 setup,yield 之后为 teardown;scope 控制复用范围,autouse 自动应用;parametrize 让一个测试覆盖多组输入;pytest.raises/pytest.warns/pytest.approx 分别断言异常、警告与浮点近似;skip/skipif/xfail 标记及自定义 marker 可配合 -m 选择子集;内置 fixture 如 tmp_path、monkeypatch、capsys、caplog 提供临时目录、补丁、输出与日志捕获。运行命令包括 pytest、pytest -q、-k、-m、-x、--lf、-s、--pdb、--durations 等;配置可写在 pyproject.toml 的 [tool.pytest.ini_options]、pytest.ini 等文件。限制:它本身不是测试编排器、覆盖率工具或 mocking 库;覆盖率需 pytest-cov,并行需 pytest-xdist,mock 常用标准库 unittest.mock 或 pytest-mock;暂未提供定价与平台信息。安装:pip install -U pytest 或 uv add --dev pytest,并要求 Python 3.10+。