# -*- coding:utf-8 -*-# 作者:虫无涯# 日期:2023/3/16 # 文件名称:test_assume.py# 作用:pytest-assume插件的使用# 联系:VX(NoamaNelson)# 博客:https://blog.csdn.net/NoamaNelsonimport pytest
deftest_case():
a =100
b =200assert a + b <100assert a - b >0assert a * b ==20000assert a / b ==200assert(b - a)/ a ==1if __name__ =='__main__':
pytest.main(["-s","test_assume.py"])
运行结果如下,可以看到第一个断言失败后,后边的断言是无法进行的:
collecting ... collected 1 item
test_assume.py::test_case FAILED [100%]
test_case\test_j\test_assume.py:8(test_case)deftest_case():
a =100
b =200>assert a + b <100
E assert(100+200)<100
test_assume.py:12: AssertionError
断言失败
断言失败
================================== FAILURES ===================================
__________________________________ test_case __________________________________
deftest_case():
a =100
b =200>assert a + b <100
E assert(100+200)<100
test_assume.py:12: AssertionError
=========================== short test summary info ===========================
FAILED test_assume.py::test_case -assert(100+200)<100==============================1 failed in0.15s ==============================
4 pytest-assume断言
代码如下:
# -*- coding:utf-8 -*-# 作者:虫无涯# 日期:2023/3/16 # 文件名称:test_assume.py# 作用:pytest-assume插件的使用# 联系:VX(NoamaNelson)# 博客:https://blog.csdn.net/NoamaNelsonimport pytest
# def test_case():# a = 100# b = 200# assert a + b < 100# assert a - b > 0# assert a * b == 20000# assert a / b == 200# assert (b - a) / a == 1deftest_case01():
a =100
b =200
pytest.assume(a + b <100)
pytest.assume(a - b >0)
pytest.assume(a * b ==20000)
pytest.assume(a / b ==200)
pytest.assume((b - a)/ a ==1)print("执行到这了~~~~~~~~~~")if __name__ =='__main__':
pytest.main(["-s","test_assume.py"])
执行结果如下,可以看到前边有断言失败的,后边的断言是继续进行的:
test_assume.py::test_case01 FAILED [100%]执行到这了~~~~~~~~~~
test_case\test_j\test_assume.py:21(test_case01)
tp =<class'pytest_assume.plugin.FailedAssumption'>, value =None, tb =Nonedefreraise(tp, value, tb=None):try:if value isNone:
value = tp()if value.__traceback__ isnot tb:>raise value.with_traceback(tb)
E pytest_assume.plugin.FailedAssumption:
E 3 Failed Assumptions:
E
E test_assume.py:25: AssumptionFailure
E >> pytest.assume(a + b <100)
E AssertionError:assertFalse
E
E test_assume.py:26: AssumptionFailure
E >> pytest.assume(a - b >0)
E AssertionError:assertFalse
E
E test_assume.py:28: AssumptionFailure
E >> pytest.assume(a / b ==200)
E AssertionError:assertFalse
D:\Python37\lib\site-packages\six.py:702: FailedAssumption
断言失败
断言失败
================================== FAILURES ===================================
_________________________________ test_case01 _________________________________
tp =<class'pytest_assume.plugin.FailedAssumption'>, value =None, tb =Nonedefreraise(tp, value, tb=None):try:if value isNone:
value = tp()if value.__traceback__ isnot tb:>raise value.with_traceback(tb)
E pytest_assume.plugin.FailedAssumption:
E 3 Failed Assumptions:
E
E test_assume.py:25: AssumptionFailure
E >> pytest.assume(a + b <100)
E AssertionError:assertFalse
E
E test_assume.py:26: AssumptionFailure
E >> pytest.assume(a - b >0)
E AssertionError:assertFalse
E
E test_assume.py:28: AssumptionFailure
E >> pytest.assume(a / b ==200)
E AssertionError:assertFalse
D:\Python37\lib\site-packages\six.py:702: FailedAssumption
---------------------------- Captured stdout call -----------------------------
执行到这了~~~~~~~~~~=========================== short test summary info ===========================
FAILED test_assume.py::test_case01 - pytest_assume.plugin.FailedAssumption:==============================1 failed in0.17s ==============================