在测试中使用断言语句
make assert语句打印漂亮的输出,包括source。
这使得 assert x == y
更有用,作为替代 self.assertEqual(x, y)
此插件实现 outcomeDetail()
并检查event.exc_信息如果它发现发生了断言错误,它将检查回溯并向错误报告添加其他详细信息。
配置 [pretty-assert]
- always-on
- 违约:
假
- 类型:
布尔
示例配置
默认配置相当于在 unittest.cfg
文件。
[pretty-assert]
always-on = False
命令行选项
- --pretty-assert DEFAULT
为“assert”语句添加漂亮的输出
插件类引用:prettyassert
断言语句检查
prettyassert插件通过检查引发 AssertionError . 与pytest的断言重写代码不同,它不修改内置的 AssertionError .
因此,它的功能有限——它只能报告 跳跃 该堆栈帧中的值。这意味着这种类型的声明工作得很好:
x = f()
y = g()
assert x == y
但这类声明不:
assert f() == g()
它仍然会运行,但prettyassert会告诉您 f 和 g 是函数,而不是它们的计算结果。这可能不是你想要的。
属性分辨率
断言检查将解析属性,这样类似的表达式也可以工作:
assert x.foo == 1
但是请注意,属性 x.foo 将被解决 两次 在这种情况下,如果断言失败。一次在评估断言时,一次在检查断言时。
因此,在PrettyAssert检查下,具有动态值的属性的行为可能不符合预期。