allure使用详情:allure测试报告使用
pytest使用详情:pytest官方文档
捕获异常
在测试过程中,经常需要测试是否如期抛出预期的异常,以确定异常处理模块生效。在 pytest 中使用 pytest.raises() 进行异常捕获:
# test_raises.py
def test_raises():
with pytest.raises(TypeError) as e:
connect('localhost', '6379')
exec_msg = e.value.args[0]
assert exec_msg == 'port type must be int'
使用标记
使用 pytest.mark 在函数上进行标记。
# test_with_mark.py
@pytest.mark.finished
def test_func1():
assert 1 == 1
@pytest.mark.unfinished
def test_func2():
assert 1 != 1
测试时使用 -m 选择标记的测试函数:
pytest -m finished tests/test-function/test_with_mark.py
跳过
# test_skip.py
@pytest.mark.skip(reason='out-of-date api')
def test_connect():
pass
pytest 使用 s 表示测试被跳过(SKIPPED)。
预见的错误
如果我们事先知道测试函数会执行失败,但又不想直接跳过,而是希望显示的提示。
Pytest 使用 pytest.mark.xfail 实现预见错误功能:
# test_xfail.py
@pytest.mark.xfail(gen.__version__ &l