1、断言assert
assert把实际结果和预期作对比符合预期pass否则 failed,可在异常时输出提示信息,报错后,便于查找原因。在上下文管理器( pytest.raises)中,使用关键字参数消息指定自定义失败消息
# coding=utf-8
import pytest
def test_zero_division():
""" 断言异常 """
with pytest.raises(ZeroDivisionError) as excinfo:
1 / 0
# 断言异常类型type
assert excinfo.type == ZeroDivisionError
# 断言异常value值
assert 'division by zero' in str(excinfo.value)
excinfo是一个异常信息实例,它是围绕实际引发的异常的包装器。主要属性是.type、 .value 和 .traceback
(注:断言type时,异常类型无需加引号,断言value值时,需要转str)
常用断言:
assert xx 判断xx为真
assert not xx 判断xx不为真
assert a in b 判断b包含a
assert a == b 判断a等于b
assert a != b 判断a不等于b
2、跳过用例skip
pytest.mark.skip无条件跳过(可用于标记无法在某些平台运行的测试功能/期望失败的功能)
pytest.mark.skipif有条件跳过
注意:不要在使用继承的类上使用skipif。 pytest中的一个已知错误标记可能会导致超类中的意外行为。
pytestmark = pytest.mark.skipif(...)#跳过模块的所有测试功能
pytest.importorskip("pexpect") #缺少某些导入,则跳过模块中的所有测试
网友评论