Pytest学习:断言方式记录

这篇博客详细介绍了在Pytest中使用assert进行断言判断的方法,通过示例展示了如何在测试用例中检查预期值与实际值的一致性,并强调了在断言异常时如何添加定制化的错误信息,以便于快速定位问题。

在使用pytest编写自动化测试用例时,需要使用断言来判断预期值和实际值是否一致,而pytest的断言是通过assert来实现的,特此记录

示例

import pytest


class TestDemo:

    a = 'a'
    b = 'abc'
    c = True
    d = False
    e = 1
    f = 2

    def test_0(self):
        assert self.a == self.b, '判断a、b是否相等'

    def test_1(self):
        assert self.a != self.b, '判断a、b是否不相等'

    def test_2(self):
        assert self.c, '判断c是否为真'

    def test_3(self):
        assert not self.d, '判断d是否不为真'

    def test_4(self):
        assert self.a in self.b, '判断b是否包含a'

    def test_5(self):
        assert self.a not in self.b, '判断b是否不包含a'

    def test_6(self):
        assert self.e > self.f, '判断e是否大于f'

    def test_7(self):
        assert self.e < self.f, '判断e是否小于f'


if __name__ == '__main__':
    pytest.main(["-s", "demo.py"])

执行结果

============================= test session starts =============================
platform win32 -- Python 3.9.1, pytest-6.2.1, py-1.10.0, pluggy-0.13.1
plugins: allure-pytest-2.13.0, Faker-15.3.4
collected 8 items

demo.py F....FF.

================================== FAILURES ===================================
_______________________________ TestDemo.test_0 _______________________________

self = <demo.TestDemo object at 0x0000024CF8200D00>

    def test_0(self):
>       assert self.a == self.b, '判断a、b是否相等'
E       AssertionError: 判断a、b是否相等
E       assert 'a' == 'abc'
E         - abc
E         + a

demo.py:14: AssertionError
_______________________________ TestDemo.test_5 _______________________________

self = <demo.TestDemo object at 0x0000024CF81EE490>

    def test_5(self):
>       assert self.a not in self.b, '判断b是否不包含a'
E       AssertionError: 判断b是否不包含a
E       assert 'a' not in 'abc'
E         'a' is contained here:
E           abc
E         ? +

demo.py:29: AssertionError
_______________________________ TestDemo.test_6 _______________________________

self = <demo.TestDemo object at 0x0000024CF820FB50>

    def test_6(self):
>       assert self.e > self.f
E       assert 1 > 2
E        +  where 1 = <demo.TestDemo object at 0x0000024CF820FB50>.e
E        +  and   2 = <demo.TestDemo object at 0x0000024CF820FB50>.f

demo.py:32: AssertionError
=========================== short test summary info ===========================
FAILED demo.py::TestDemo::test_0 - AssertionError: 判断a、b是否相等
FAILED demo.py::TestDemo::test_5 - AssertionError: 判断b是否不包含a
FAILED demo.py::TestDemo::test_6 - assert 1 > 2
========================= 3 failed, 5 passed in 0.24s =========================

断言异常提示

可在断言处添加异常信息提示,方便快速定位错误原因

# 以test_6为例

    def test_6(self):
        assert self.e > self.f
# 报错:FAILED demo.py::TestDemo::test_6 - assert 1 > 2

    def test_6(self):
        assert self.e > self.f, '判断e是否大于f'
# 报错:FAILED demo.py::TestDemo::test_6 - AssertionError: 判断e是否大于f
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值