领取资料,咨询答疑,请➕wei: June__Go
上一小节我们学习了pytest指定用例执行顺序插件pytest-ordering,本小节我们讲解一下pytest多重断言插件-pytest-assume。
在自动化测试过程中,我们执行完用例之后,需要验证脚本执行的结果和预期的结果是否一致,来达到断言测试用例是否执行成功。一般情况下我们常用的断言方式是assert + 布尔型/表达式形式,但是这种形式的断言不通过则用例会直接停止,该条用例直接结束,哪怕后面还有代码也不会执行。
那么,怎么才能让用例完整的执行完再判断成功与否呢?pytest-assume帮我们解决了这一问题。我们也可以给一条用例设置多个断言,哪怕第一个断言失败,后面的断言依然执行判断。
安装插件
pip install pytest-assume
使用方法
语法
pytest.assume(布尔型/表达式)
代码示例:
import pytestclass TestCase():def test_01(self):print("---用例1执行---")assert False,"用例1-第一次断言"assert False,"用例1-第二次断言"def test_02(self):print("---用例2执行---")pytest.assume(False,"用例2-第一次断言")pytest.assume(False,"用例2-第二次断言")
运行结果:
============================= test session starts ==============================
collecting ... collected 2 itemstest_demo.py::TestCase::test_01 FAILED [ 50%]---用例1执行---test_demo.py:4 (TestCase.test_01)
self = <test_demo.TestCase object at 0x10ec5d250>def test_01(self):
print("---用例1执行---")
> assert False,"用例1-第一次断言"
E AssertionError: 用例1-第一次断言
E assert Falsetest_demo.py:7: AssertionErrortest_demo.py::TestCase::test_02 FAILED [100%]---用例2执行---test_demo.py:10 (TestCase.test_02)
tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = Nonedef reraise(tp, value, tb=None):try:if value is None:value = tp()if value.__traceback__ is not tb:> raise value.with_traceback(tb)
E pytest_assume.plugin.FailedAssumption:
E 2 Failed Assumptions:
E
E test_demo.py:13: AssumptionFailure
E >> pytest.assume(False,"用例2-第一次断言")
E AssertionError: 用例2-第一次断言
E assert False
E
E test_demo.py:14: AssumptionFailure
E >> pytest.assume(False,"用例2-第二次断言")
E AssertionError: 用例2-第二次断言
E assert False../../Library/Python/3.9/lib/python/site-packages/six.py:718: FailedAssumption============================== 2 failed in 0.05s ===============================
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走,希望可以帮助到大家!领取资料,咨询答疑,请➕wei: June__Go