首页/开发/软件测试速查/pytest 断言内省
自动化测试66 条

pytest 断言内省

pytest 允许直接写 assert,失败时自动展开表达式内省:标量比较显示两侧值,容器比较显示差异项;无需记忆专门的断言方法名。

软件测试速查开发更新于 2026-10-12

断言示例

断言示例
def test_members():
    names = ["alice", "bob"]
    assert "carol" in names


def test_diff():
    assert {"a": 1, "b": 2} == {"a": 1, "b": 3}
内省由 assertion rewriting 提供;在非测试模块中直接使用 assert 不会得到同样的报错展开。

易错点

  • 把断言封装到辅助函数再调用,报错只指向辅助函数内部行号
  • 断言里写复杂表达式,失败信息需要人再做一次心算

数据来源与参考

  • pytest 官方文档:Assertions(assertion rewriting)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌