断言方法,一般用在测试用例执行的最后一步,判断执行结果是pass还是fail,这种生成测试结果的方法称为断言。
简单来说:
assert
方法:在断言失败时,会停止运行之后的代码或断言。
pytest-assume
模块的断言:在断言失败时,不会停止运行代码,会执行所有的测试用例,但断言失败时的结果不详细。
pytest-check
模块的断言:会执行所有的测试用例,断言失败时,可自定义打印信息,更利于记录和排查问题。
1. 原生assert方法
assert断言方法是一种比较基础的断言方法。
特点:断言失败时,就停止运行之后的代码或断言。
assert 1==2 //执行
assert 1+2==3 //不会执行
assert 3==2+1 //不会执行
执行结果:
==================================== ERRORS ====================================
_______________________ ERROR collecting test_example.py _______________________
test_example.py:1: in <module>
assert 1 == 2
E assert 1 == 2
划重点:结果中可以看出,在assert为fail时,就终止程序了,不再继续执行后面的用例。``assert适用的场景是如果前面失败,之后的断言一定失败的场景,或者前面失败,之后的用例就不再关注了,所以不需要再继续执行
。但在很多测试场景中,当有测试用例断言为fail时,还希望继续执行所有用例,得到所有用例的执行结果。这时,assert断言方法就不适用了。
2. pytest-assume断言
pytest-assume模块断言的特点是:前面用例断言为fail时,仍会继续执行完所有的用例,执行完毕后可以看到所有用例的执行结果。
但断言失败的结果不详细。
2.1需要安装依赖包:
pip install pytest-assume
2.2 pytest-assume断言的简单使用
import pytest
def test_example():
pytest.assume(1 == 2)
pytest.assume(3 == 3)
pytest.assume(2 == 3)
============================