1. Pytest 命令行参数的核心价值
每次在终端敲下pytest命令时,我都习惯性加上几个参数组合。这些看似简单的短横线字母组合,背后是测试工程师多年沉淀的高效工作流。不同于图形化界面测试工具,命令行参数提供了精准控制测试过程的底层能力,就像赛车手对变速箱的操控——合适的档位选择直接决定测试效率。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 高频参数深度解析
2.1 测试选择与过滤
-k参数是我使用频率最高的过滤利器。它支持Python表达式语法,可以组合多个条件:
bash复制pytest -k "not slow and not integration"
这个命令会排除所有被@pytest.mark.slow或@pytest.mark.integration标记的测试用例。实际项目中,我经常用它快速运行某个模块的冒烟测试:
bash复制pytest -k "TestUserAPI and not test_delete"
-m参数则是标记选择器的最佳搭档。假设我们定义了@pytest.mark.smoke标记:
bash复制pytest -m smoke
重要提示:使用标记前需在pytest.ini中注册标记名,否则会触发警告
2.2 输出控制与报告
当测试失败时,-v和--tb的组合能救命:
bash复制pytest -v --tb=auto
--tb有多个模式可选:
auto:默认值,智能显示关键回溯long:完整错误堆栈short:精简错误信息line:单行错误摘要native:Python标准格式
对于CI环境,我推荐使用--junitxml生成机器可读报告:
bash复制pytest --junitxml=report.xml
2.3 执行控制参数
-x参数在首次失败时立即退出,适合快速迭代开发:
bash复制pytest -x
更灵活的版本是--maxfail:
bash复制pytest --maxfail=3
多进程运行是大型测试集的提速关键:
bash复制pytest -n 4
注意:需要提前安装pytest-xdist插件
