如何在pytest中针对单个值的断言编写自定义断言消息?

时间:2019-10-19 21:44:45

标签: python pytest

在pytest中,您可以通过以下方式注册钩子以提供自定义断言消息:

def pytest_assertrepr_compare(config, left, right, op):
    if isinstance(left, Foo) and isinstance(right, Foo):
        return ["Assert failed because Foo!"]

这仅适用于以下形式的测试:

assert Foo() == Foo()
assert 5 is 6
assert "char" in "mychar"
assert 10 > 20

,依此类推。它不适用于单个操作数表达式:

assert Foo()
assert ProduceValue()

如果使用特定值调用assert,是否可以编写一个显示自定义断言消息的钩子?我不需要所有值都发生这种情况,仅在评估特定类时会发生这种情况。如果有另一种方法可以使带有自定义断言的测试“失败”,那也可以。

0 个答案:

没有答案