python-behave で JSON の等価性をアサートし、アサーションが失敗したときに出力として差分を取得するにはどうすればよいですか?
Ruby ではhttps://github.com/collectiveidea/json_specを使用しているため、基本的に Python で同様の機能を探しています。
通常のassert
ステートメントでは、出力は非常に役に立ちません。
python-behave で JSON の等価性をアサートし、アサーションが失敗したときに出力として差分を取得するにはどうすればよいですか?
Ruby ではhttps://github.com/collectiveidea/json_specを使用しているため、基本的に Python で同様の機能を探しています。
通常のassert
ステートメントでは、出力は非常に役に立ちません。
しばらく前に同様の機能が必要でした。私が見つけた最も簡単な方法は、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
は、エラーが発生しない限り、behavior はステートメントを表示しません。diff 出力を表示するには、テストを失敗させる必要があります。