单元测试的错误打印示例:
Expected
<string>: "...up - Finish..."
to equal |
<string>: "...up - Vault ..."
有没有办法增加印刷限制,这根本不实用...比如至少增加到100个标志之类的东西...
编辑:我可能没有给出足够的信息:
Vault ...
Finish...
不是字符串中唯一不同的部分,如果发生错误,没有更多的上下文很难阅读。应该有一种方法来允许完整的比较打印,不是吗?类似于NodeJS Chai中的情况。
1条答案
按热度按时间shyt4zoc1#
至少从我的阅读和实验来看,我认为不修改底层的Ginkgo代码是不可能做到这一点的。Ginkgo使用自己的报告框架,你可以利用它来定制输出......在一定范围内。
查看原始报告输出的一种方法是将其转储为json,并为
ginkgo
添加--json-report <PATH>
标志:我创建了一个简单的规范来比较两个非常长的字符串(只是英语字母表重复,用空格分隔,重复了很多次),不同之处仅在于用“foobar”替换了一个字母表块,报告的内容与您在正常输出中看到的内容相关,仅限于:
然后,我修改了比较字符串,使其diff扩展了更长的范围,并且消息是相同的-仍然截断到初始的不匹配点。
您可以通过Ginkgo本身访问基础报告框架,例如:
这也返回了消息中被截断的字符串,这向我表明,没有容易访问的机制来获取更长的字符串以输出-因为这可能是在较低级别生成的(我在考虑
Equal()
匹配器的代码,但我还没有看):有关参考,请参阅银杏报告文件和银杏godoc的相关部分。