一、assert 声明
使用pytest编写测试用例时,若需要传递失败消息,则可直接使用python中自带的assert关键字
如果使用了其他的测试框架,则会看到许多以assert开头的函数,下面列举了使用assert与各种以assert开头的函数的区别
pytest | unittest |
---|---|
assert something | assertTrue(something) |
assert a == b | assertEqual(a, b) |
assert a <= b | assertLessEqual(a, b) |
… | … |
pytest允许assert关键字后面添加任何表达式,如果表达式的值通过了bool转换后等于False,则意味测试失败。
import pytest
result = [(1,2,3), (3, 2, 1), ('do_something', True, 'everyday')]
@pytest.mark.test_01
def test_01_pass():
expected = (1, 2, 3)
assert expected == result[2]
@pytest.mark.test_03
def test_02_passing():
ex_0 = (3, 2, 1)
ex_1 = ('do_something', True)
assert ex_0 == ex_1
以下展示都是assert失败的例子,可以看到回溯信息非常的丰富。
F:\TESTING\BlogPosts\ReadPytest>pytest test_one.py
================================================================================== test session starts ===================================================================================
collected 2 items
test_one.py FF [100%]
======================================================================================== FAILURES ========================================================================================
______________________________________________________________________________________ test_01_pass ______________________________________________________________________________________
@pytest.mark.test_01
def test_01_pass():
expected = (1, 2, 3)
> assert expected == result[2]
E AssertionError: assert (1, 2, 3) == ('do_somethin...e, 'everyday')
E At index 0 diff: 1 != 'do_something'
E Use -v to get the full diff
test_one.py:16: AssertionError
____________________________________________________________________________________ test_02_passing _____________________________________________________________________________________
@pytest.mark.test_03
def test_02_passing():
ex_0 = (3, 2, 1)
ex_1 = ('do_something', True)
> assert ex_0 == ex_1
E AssertionError: assert (3, 2, 1) == ('do_something', True)
E At index 0 diff: 3 != 'do_something'
E Left contains one more item: 1
E Use -v to get the full diff
test_one.py:22: AssertionError
================================================================================ short test summary info ===&