如何在失败的测试中使用diffs在python-behave中断言JSON相等?

时间:2016-04-12 13:53:45

标签: json assert python-behave

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

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

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

1 个答案:

答案 0 :(得分:1)

我不久前需要类似的功能。我找到的最简单的方法是使用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 

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