pytest 参数介绍

命令行参数 描述 常见使用案例
-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> 控制错误回溯的输出格式,选项包括 shortlongnoline 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

常见使用案例说明

  1. 显示详细信息:-v / --verbose

    • 用途:在执行测试时显示详细的测试结果,包括每个测试的名称、结果(通过或失败)。

    • 使用示例:

      复制代码
      pytest -v

    • 输出示例:

      复制代码
      test_add.py::test_addition PASSED
      test_add.py::test_subtraction FAILED

  2. 禁用输出捕获:-s / --capture=no

    • 用途:禁用 pytest 的输出捕获功能,确保 print() 输出会显示在控制台中。

    • 使用示例:

      复制代码
      pytest -s

    • 输出示例:

      复制代码
      Test started
      <stdout>: Some debug information

  3. 按测试名称过滤:-k

    • 用途:只运行名称匹配指定表达式的测试函数,可以基于函数名进行灵活的过滤。

    • 使用示例:

      复制代码
      pytest -k "add"

    • 说明: 运行名称中包含 add 的所有测试,如 test_addtest_addition

  4. 运行特定标记的测试:-m

    • 用途:运行所有带有特定标记的测试,如 smokeregression 等。

    • 使用示例:

      复制代码
      pytest -m "smoke"

    • 说明: 只运行带有 @pytest.mark.smoke 标记的测试。

  5. 最大失败次数:--maxfail

    • 用途:限制测试失败的最大次数,如果失败次数超过指定值,则停止测试执行。

    • 使用示例:

      复制代码
      pytest --maxfail=2

    • 说明: 运行最多两个失败的测试,超过两次失败则停止执行。

  6. 禁用警告信息:--disable-warnings

    • 用途:禁用所有测试中的警告信息,保持输出简洁。

    • 使用示例:

      复制代码
      pytest --disable-warnings

    • 输出示例:

      复制代码
      Test passed

  7. 生成 HTML 报告:--html

    • 用途:生成 HTML 格式的测试报告,便于查看和分享测试结果。

    • 使用示例:

      复制代码
      pytest --html=report.html

    • 说明: 生成一个 report.html 的测试报告。

  8. 跳过特定测试:--ignore

    • 用途:跳过指定的测试文件或目录,常用于忽略不需要执行的测试。

    • 使用示例:

      复制代码
      pytest --ignore=tests/test_ignored.py

  9. 生成 JUnit XML 报告:--junitxml

    • 用途:生成 JUnit XML 格式的报告,通常用于 CI/CD 集成。

    • 使用示例:

      复制代码
      pytest --junitxml=result.xml

  10. 指定测试覆盖率:--cov

    • 用途:生成代码覆盖率报告,用于分析测试覆盖了代码的哪些部分。

    • 使用示例:

      复制代码
      pytest --cov=my_module

通过结合这些命令行参数,pytest 可以在实际测试过程中提供更多灵活的控制和更详细的输出报告。

相关推荐
小馋喵知识杂货铺1 小时前
pytest 常用插件
pytest
小馋喵知识杂货铺2 天前
Allure 集成 pytest
pytest
Rhys..2 天前
pytest和unittest的区别
python·selenium·junit·pytest
香菜的开发日记3 天前
快速学习 pytest 基础知识
自动化测试·python·pytest
小馋喵知识杂货铺3 天前
Pytest 变量渲染
运维·服务器·pytest
CesareCheung3 天前
调整Python+Pytest+Allure+Yaml+Pymysql框架中需要执行的用例顺序
pytest
_可乐无糖3 天前
深入理解 pytest_runtest_makereport:如何在 pytest 中自定义测试报告
android·ui·ios·自动化·pytest
_可乐无糖7 天前
在pytest钩子函数中判断Android和iOS设备(方法一)
ui·自动化·pytest
xwj_8655743327 天前
selenium(三)
selenium·测试工具·pytest