2

如何在 python-behave 中断言 JSON 相等性并在断言失败时获取 diff 作为输出?

在 Ruby 中我使用:https://github.com/collectiveidea/json_spec,所以我基本上是在 Python 中寻找类似的功能。

使用正常assert的语句,输出是非常无用的。

4

1 回答 1

2

不久前我需要一个类似的功能。我发现最简单的方法是使用https://github.com/ChannelIQ/jsoncompare。您可以使用以下方式安装它:

$ pip install jsoncompare

然后在您的步骤代码中,您可以做出这样的断言:

from jsoncompare import jsoncompare

if jsoncompare.are_same(json1, json2):
    assert True
else:
    print (jsoncompare.are_same(json1, json2))
    assert False 

默认情况下,behave 不显示print语句,除非出现故障,您必须使测试失败才能显示 diff 输出。

于 2016-08-30T23:05:36.590 回答