前言
pytest的断言失败后,后面的代码就不会执行了,通常一个用例我们会写多个断言,有时候我们希望第一个断言失败后,后面能继续断言。
pytest-assume插件可以解决断言失败后继续断言的问题。github地址https://github.com/astraw38/pytest-assume
环境准备
先安装pytest-assume依赖包
pip install pytest-assume
遇到问题
以下是一个简单案例,输入的测试数据有3种,我们需要断言同时满足三种情况
- x == y
- x+y > 1
- x > 1
import pytest
# 上海-悠悠
@pytest.mark.parametrize(('x', 'y'),
[(1, 1), (1, 0), (0, 1)])
def test_simple_assume(x, y):
print("测试数据x=%s, y=%s" % (x, y))
assert x == y
assert x+y > 1
assert x > 1
运行结果
D:\demo\test_yoyo.py:9: AssertionError
=============