pytest的软断言-断言失败后仍然执行后续代码(插件:pytest-assume)

网友投稿 436 2022-08-28


pytest的软断言-断言失败后仍然执行后续代码(插件:pytest-assume)

前言

pytest使用assert来做断言,但是assert断言是一旦遇到断言失败的测试用例后,后面的代码就不会再执行了。

但有的时候我们经常会在用例中写多个断言,并且希望在第一个断言失败后,后面的所有的断言都能继续执行完,这就需要用到 pytest-assume 插件来解决。

背景

使用pytest进行断言判断的时候,为了用例的精准性,经常会多个方面进行断言,比如如下:

断言1:断言响应的显示执行过程中的局部变量)。可以全局使用,无需指定fixtrue装饰器。(即任意test_xxx函数中都能用)。对断言输出做了一些格式上的美化。

下载

pip install pytest-assume

原生assert硬断言(第一个断言失败后,后续代码不再执行)

# file_name: test_assume.pyimport pytestdef test_assume_01(): print("\n-----测试用例开始执行-----") assert 1 == 2 assert 2 == 2 print("-----测试用例执行结束了-----")if __name__ == '__main__': pytest.main(['-s', 'test_assume.py'])

运行结果:

从运行结果中可以看到执行到assert 1 == 2 的时候断言失败了,后面的代码就没有执行了。

assume软断言(第一个断言失败后,后续代码会继续运行)

使用 pytest.assume() 断言:

# file_name: test_assume.pyimport pytestdef test_assume_01(): print("\n-----测试用例开始执行-----") pytest.assume(1 == 2) pytest.assume(2 == 2) print("-----测试用例执行结束了-----")if __name__ == '__main__': pytest.main(['-s', 'test_assume.py'])

运行结果:

从运行结果中可以看到,断言在  pytest.assume(1 == 2) 时失败了,但是后面的代码也执行了。

去期待陌生,去拥抱惊喜。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:pytest实现用例参数化(@pytest.mark.parametrize)
下一篇:java 方法泛型入参T和String的重载关系详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~