11

py.test断言文档

...如果您使用这样的断言指定消息:

assert a % 2 == 0, "value was odd, should be even"

然后根本不会发生断言自省,消息将简单地显示在回溯中。

Python 的内置unittest模块也这样做,除非你的TestCasesets longMessage = True

拥有漂亮的断言格式对测试开发人员友好,而自定义消息更符合业务需求/人性化。当您不在测试的上下文中时,自定义消息特别有用,即它回答了断言在那里所做的事情,而无需查看代码。所以,我想同时收到这两条消息。

有没有办法获得 py.test 的漂亮断言自省和格式化并打印自定义消息?

4

2 回答 2

2

目前没有办法启用断言额外信息和消息。我认为可以添加,但不确定需要多少努力。到目前为止,我还没有意识到这个问题。随意提出问题或尝试拉取请求。但是请注意,如果您努力编写自定义的人类可读消息,您可能还可以从表达式中输入一些有趣的值。

于 2013-10-13T14:32:16.660 回答
0

消息可以被格式化:

assert  a % 2 == 0, f"a was {a}, was odd, should be even"
于 2021-09-20T15:23:46.217 回答