| 命令行参数 | 描述 | 常见使用案例 | 
|---|---|---|
| -v/--verbose | 显示每个测试用例的详细信息,包括测试名称和状态 | pytest -v | 
| -s/--capture=no | 禁用输出捕获,允许 print()输出显示 | pytest -s | 
| -q/--quiet | 安静模式,减少输出,仅显示每个测试的通过/失败结果 | pytest -q | 
| -k <expression> | 根据指定的表达式运行匹配的测试,支持匹配测试函数名称或类名 | pytest -k "test_add" | 
| -m <markexpr> | 运行具有指定标记的测试,用于过滤测试,如 smoke标记的测试 | pytest -m smoke | 
| --maxfail=<num> | 设置最大失败次数,超过次数则停止执行测试 | pytest --maxfail=3 | 
| --disable-warnings | 禁用警告信息输出 | pytest --disable-warnings | 
| --tb=<style> | 控制错误回溯的输出格式,选项包括 short、long、no、line | pytest --tb=short | 
| --capture=<mode> | 控制标准输出捕获方式, no禁用,fd捕获标准输出和错误,sys捕获标准输出等 | pytest --capture=no | 
| -p | 加载插件。用于在命令行中加载指定插件,如 -p no:warnings禁用警告插件 | pytest -p no:warnings | 
| --runxfail | 标记预期会失败的测试。如果测试失败不会被计入总失败次数,如果通过则为错误 | pytest --runxfail | 
| --junitxml=<file> | 生成 JUnit XML 格式的测试报告,用于 CI/CD 集成 | pytest --junitxml=report.xml | 
| --html=<file> | 生成 HTML 格式的测试报告(需要安装 pytest-html插件) | pytest --html=report.html | 
| --cov=<module> | 生成代码覆盖率报告(需要安装 pytest-cov插件) | pytest --cov=my_module | 
| --ignore=<path> | 忽略指定的测试文件或目录。可以用于跳过不需要执行的测试 | pytest --ignore=tests/test_ignored.py | 
| --setup-show | 显示每个测试的 setup 和 teardown 步骤 | pytest --setup-show | 
| --trace | 追踪每个测试的执行顺序(适用于有复杂依赖关系的测试) | pytest --trace | 
| --fixtures | 列出当前项目中所有的 fixtures | pytest --fixtures | 
| -h | 显示 pytest的帮助信息,列出所有可用的命令行参数 | pytest -h | 
常见使用案例说明
-  显示详细信息: -v/--verbose- 用途:在执行测试时显示详细的测试结果,包括每个测试的名称、结果(通过或失败)。
- 使用示例: pytest -v 
- 输出示例: test_add.py::test_addition PASSED test_add.py::test_subtraction FAILED 
 
-  禁用输出捕获: -s/--capture=no- 用途:禁用 pytest 的输出捕获功能,确保 print()输出会显示在控制台中。
- 使用示例: pytest -s 
- 输出示例: Test started <stdout>: Some debug information 
 
- 用途:禁用 pytest 的输出捕获功能,确保 
-  按测试名称过滤: -k- 用途:只运行名称匹配指定表达式的测试函数,可以基于函数名进行灵活的过滤。
- 使用示例: pytest -k "add" 
- 说明: 运行名称中包含 add的所有测试,如test_add或test_addition。
 
-  运行特定标记的测试: -m- 用途:运行所有带有特定标记的测试,如 smoke、regression等。
- 使用示例: pytest -m "smoke" 
- 说明: 只运行带有 @pytest.mark.smoke标记的测试。
 
- 用途:运行所有带有特定标记的测试,如 
-  最大失败次数: --maxfail- 用途:限制测试失败的最大次数,如果失败次数超过指定值,则停止测试执行。
- 使用示例: pytest --maxfail=2 
- 说明: 运行最多两个失败的测试,超过两次失败则停止执行。
 
-  禁用警告信息: --disable-warnings- 用途:禁用所有测试中的警告信息,保持输出简洁。
- 使用示例: pytest --disable-warnings 
- 输出示例: Test passed 
 
-  生成 HTML 报告: --html- 用途:生成 HTML 格式的测试报告,便于查看和分享测试结果。
- 使用示例: pytest --html=report.html 
- 说明: 生成一个 report.html的测试报告。
 
-  跳过特定测试: --ignore- 用途:跳过指定的测试文件或目录,常用于忽略不需要执行的测试。
- 使用示例: pytest --ignore=tests/test_ignored.py 
 
-  生成 JUnit XML 报告: --junitxml- 用途:生成 JUnit XML 格式的报告,通常用于 CI/CD 集成。
- 使用示例: pytest --junitxml=result.xml 
 
-  指定测试覆盖率: --cov- 用途:生成代码覆盖率报告,用于分析测试覆盖了代码的哪些部分。
- 使用示例: pytest --cov=my_module 
 
通过结合这些命令行参数,pytest 可以在实际测试过程中提供更多灵活的控制和更详细的输出报告。