在使用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

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

被折叠的 条评论
为什么被折叠?



