- pytest 教程
- pytest - 主页
- pytest - 简介
- pytest - 环境设置
- 识别测试文件和函数
- pytest - 从基本测试开始
- pytest - 文件执行
- 执行测试套件的子集
- 测试名称的子字符串匹配
- pytest - 分组测试
- pytest - 组件
- pytest - Conftest.py
- pytest - 参数化测试
- pytest - Xfail/跳过测试
- 在 N 次测试失败后停止测试套件
- pytest - 并行运行测试
- 以 XML 形式显示测试执行结果
- pytest - 摘要
- pytest - 结语
- pytest 有用资源
- pytest - 快速指南
- pytest - 有用资源
- pytest - 讨论
pytest-在 N 次测试失败后停止测试套件
在实际场景中,一旦新版本的代码准备就绪准备部署时,它将首先部署到预生产/过渡环境中。其上运行测试套件。
仅当测试套件通过时,该代码才有资格部署到生产环境中。如果测试失败,无论是单次还是多次,则代码都未准备好进行生产。
因此,如果我们希望在 n 个测试失败后立即停止测试套件的执行,该怎么办。这可以通过在 pytest 中使用 maxfail 来完成。
在 n 个测试失败后立即停止测试套件执行的语法如下 −
pytest --maxfail = <num>
使用以下代码创建文件 test_failure.py。
import pytest import math def test_sqrt_failure(): num = 25 assert math.sqrt(num) == 6 def test_square_failure(): num = 7 assert 7*7 == 40 def test_equality_failure(): assert 10 == 11
执行此测试文件时,所有 3 个测试都将失败。在这里,我们将通过以下方式在第一次失败后停止测试的执行 −
pytest test_failure.py -v --maxfail 1
test_failure.py::test_sqrt_failure FAILED =================================== FAILURES =================================== _______________________________________ test_sqrt_failure __________________________________________ def test_sqrt_failure(): num = 25 > assert math.sqrt(num) == 6 E assert 5.0 == 6 E + where 5.0 = <built-in function sqrt>(25) E + where <built-in function sqrt>= math.sqrt test_failure.py:6: AssertionError =============================== 1 failed in 0.04 seconds ===============================
在上面的结果中,我们可以看到执行在一个失败后已停止。
广告