pytest-常用断言

2021-05-31  本文已影响0人  Chaweys

pytest-断言assert
与unittest不同,pytest使用的是python自带的assert关键字来进行断言
assert关键字后面可以接一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败.


举例:
可以再断言之后逗号分隔,输出有效提示信息

#coding=utf-8

def func():
    return 3

class TestAssert:
    def test_start(self):
        a = func()
        assert a % 2 ==0, "判断 a 是否为偶数,当前 a 的值为:{0}".format(a)

CMD运行结果:
E:\ProjectStudy\Pytest框架>pytest -s test_assert.py
================================================= test session starts =================================================
platform win32 -- Python 3.8.0, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
rootdir: E:\ProjectStudy\Pytest框架
plugins: forked-1.3.0, parallel-0.0.10, xdist-2.2.1
collected 1 item

test_assert.py F

====================================================== FAILURES =======================================================
________________________________________________ TestAssert.test_start ________________________________________________

self = <Pytest框架.test_assert.TestAssert object at 0x00000274F4A3ED00>

    def test_start(self):
        a = func()
>       assert a % 2 ==0, "判断 a 是否为偶数,当前 a 的值为:{0}".format(a)
E       AssertionError: 判断 a 是否为偶数,当前 a 的值为:3
E       assert (3 % 2) == 0

test_assert.py:9: AssertionError
=============================================== short test summary info ===============================================
FAILED test_assert.py::TestAssert::test_start - AssertionError: 判断 a 是否为偶数,当前 a 的值为:3



常用断言:
assert xx      判断 xx 为真
assert not xx  判断 xx 不为真
assert a in b  判断 b 包含 a
assert a == b  判断 a 等于 b
assert a != b  判断 a 不等于 b


对可能会可能不会出现异常的测试用例断言,使用断言装饰器@pytest.mark.xfail(raises=ZeroDivisionError)
class TestAssert:
    def test_start(self):
        a = func()
        assert a % 2 ==0, "判断 a 是否为偶数,当前 a 的值为:{0}".format(a)

    @pytest.mark.xfail(raises=ZeroDivisionError)
    def test_two(self):
        1/0
上一篇 下一篇

猜你喜欢

热点阅读