【发布时间】:2018-11-09 12:44:27
【问题描述】:
我正在使用Pycharm 运行我的pytest 单元测试。我正在测试一个 REST API,所以我经常需要验证 JSON 块。当测试失败时,我会看到如下内容:
FAILED
test_document_api.py:0 (test_create_documents)
{'items': [{'i...ages': 1, ...} != {'items': [{'...ages': 1, ...}
Expected :{'items': [{'...ages': 1, ...}
Actual :{'items': [{'i...ages': 1, ...}
<Click to see difference>
当我点击“点击查看差异”链接时,大部分差异都会转换为椭圆的点,就像这样
这是没用的,因为它没有告诉我有什么不同。对于大于单个字符串或数字的任何差异,我都会得到这种行为。
我假设 Pycharm 和/或 pytest 试图省略大输出差异的无信息部分。但是,这里太激进了,什么都忽略了。
如何让 Pycharm 和/或 pytest 向我展示全部差异?
我尝试将-vvv 添加到 pytest 的附加参数中,但没有效果。
自从原始帖子以来,我验证了当我从命令行运行单元测试时,我看到了相同的行为。所以这是 pytest 而不是 Pycharm 的问题。
查看到目前为止我得到的答案后,我想我真正要问的是“在 pytest 中是否可以在不更改测试源代码的情况下设置maxDiff=None?”我从阅读 pytest 获得的印象是 -vv 开关控制此设置,但事实并非如此。
【问题讨论】:
标签: python pycharm pytest difference