📜  Pytest-N次测试失败后停止Test Suite

📅  最后修改于: 2020-11-06 05:22:31             🧑  作者: Mango


在实际情况下,一旦准备好部署新版本的代码,便会首先将其部署到预生产/登台环境中。然后在其上运行测试套件。

仅当测试套件通过时,该代码才有资格部署到生产中。如果存在测试失败(无论是一次还是多次),则该代码尚未准备就绪。

因此,如果我们想在n次测试失败后立即停止执行测试套件,该怎么办。这可以在pytest中使用maxfail完成。

在n次测试失败后立即停止执行测试套件的语法如下-

pytest --maxfail = 

使用以下代码创建文件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 = (25)
E  + where = math.sqrt
test_failure.py:6: AssertionError
=============================== 1 failed in 0.04 seconds
===============================

在上面的结果中,我们可以看到执行一次失败就停止了。