0

我正在使用内置的 unittest 库(python 3.5)测试我的应用程序,并且一些测试用例比较(列表)字典。当这些测试失败时,输出不是很有帮助:

第一个不同的元素 1:
{'emi[1557 chars]al': 509201.03, 'remaining_time': None, 'nomin[1213 chars]alse}
{'emi[1557 chars]al': '509,201.03', 'remaining_time': None , '没有[1218个字符]alse}

很容易看出哪个列表元素是错误的,但有限的差异窗口会削减不同字典条目的键名。我知道我可以用 self.maxDiff = None 显示完整的差异,但这不是我想要的。我喜欢有限的差异窗口,我只是不喜欢它在差异中的位置。

我可以以某种方式配置差异窗口的位置吗?或者,在比较字典时,如何使用 python 测试获得信息丰富的测试失败报告?

4

1 回答 1

0

此功能是作为问题#18996的一部分添加的——我明白为什么......试图找出一长串字符中的差异绝对不好玩。其他人抱怨对问题的缩短缺乏控制,因此问题#21820被打开。

进行缩短的代码在这里。你也许可以在那里修补它,但我不建议这样做。或者,您可以编写自己的方法或扩展 TestCase 类来比较字典列表并完全控制结果。

于 2019-02-13T23:51:45.063 回答