一些参数
pytest执行的时候,支持一些参数开启特定功能 好的!以下是 pytest 常用命令行参数的详细表格说明:🔍 输出详细程度控制
| 参数 | 全称 | 说明 | 示例 |
|---|---|---|---|
-v | --verbose | 详细模式,显示每个测试的详细结果 | pytest -v |
-q | --quiet | 静默模式,只显示总体结果 | pytest -q |
-s | --capture=no | 禁用捕获,显示print输出和日志 | pytest -s |
-vs | 组合参数 | 详细+显示输出(常用组合) | pytest -vs |
--tb=style | --traceback=style | 设置回溯显示样式 | pytest --tb=short |
--tb=auto:默认,只显示失败测试的回溯--tb=short:简短的回溯信息--tb=long:详细回溯信息--tb=line:每个失败只显示一行--tb=no:不显示回溯信息
🎯 测试选择与过滤
| 参数 | 说明 | 示例 |
|---|---|---|
-k "表达式" | 关键字过滤,运行名称匹配表达式的测试 | pytest -k "login" |
-m "标记" | 标记过滤,运行有特定标记的测试 | pytest -m "slow" |
--lf | 只运行上次失败的测试 | pytest --lf |
--ff | 先运行失败的,再运行其他的 | pytest --ff |
-x | 遇到第一个失败就停止 | pytest -x |
--maxfail=n | n次失败后停止 | pytest --maxfail=3 |
--ignore=路径 | 忽略指定路径 | pytest --ignore=tests/old/ |
📁 目录与文件指定
| 参数 | 说明 | 示例 |
|---|---|---|
路径/文件 | 指定测试路径或文件 | pytest tests/ |
:: | 指定具体测试函数/类 | pytest test_file.py::test_func |
--collect-only | 只收集测试,不执行 | pytest --collect-only |
--pyargs | 从Python包导入测试 | pytest --pyargs mypkg.tests |
⚙️ 执行控制
| 参数 | 说明 | 示例 |
|---|---|---|
-n NUM | 并行执行(需pytest-xdist) | pytest -n 4 |
--looponfail | 失败时循环运行 | pytest --looponfail |
-p | 提前加载插件 | pytest -p myplugin |
--fixtures | 显示可用fixtures | pytest --fixtures |
📊 报告与输出
| 参数 | 说明 | 示例 |
|---|---|---|
--durations=N | 显示最慢的N个测试 | pytest --durations=10 |
--junitxml=路径 | 生成JUnit XML报告 | pytest --junitxml=report.xml |
--html=路径 | 生成HTML报告(需pytest-html) | pytest --html=report.html |
--cov=源路径 | 生成覆盖率报告(需pytest-cov) | pytest --cov=myapp |
--lf | 上次失败优先 | pytest --lf |
🔧 配置与调试
| 参数 | 说明 | 示例 |
|---|---|---|
-c 文件 | 指定配置文件 | pytest -c pytest.ini |
--version | 显示pytest版本 | pytest --version |
-h / --help | 显示帮助信息 | pytest -h |
--setup-show | 显示fixture执行过程 | pytest --setup-show |
-l | 显示局部变量值 | pytest -l |
🎯 常用组合示例
📝 配置文件中的对应设置 这些参数也可以在
pytest.ini 中配置,pytest运行的时候会读取此文件,这样就不用自己每次去手动加参数了:
💡 使用建议
- 开发调试时:
pytest -xvs(快速失败+详细输出) - CI/CD中:
pytest --tb=short --junitxml=report.xml(简洁+报告) - 性能分析:
pytest --durations=10(找出慢测试) - 大型项目:
pytest -n auto(并行执行)
编程方式调用
pytest除了支持cli方式调用之外(pytest xxx.py),还支持一编码的方式调用

