C# NUnit断言为相等字符串差异

C# NUnit断言为相等字符串差异,c#,.net,nunit,nunit-3.0,C#,.net,Nunit,Nunit 3.0,我正在为代码生成器编写单元测试,我的大多数测试都会将跨越几行的输出与一些黄金输出进行比较。目前,我正在将输出与Assert.AreEqual(string,string)进行比较,后者显示第一个差异周围的上下文 不幸的是,这不是很有帮助。理想情况下,我希望得到不同的输出这样做的最佳方式是什么?我当前的计划是将生成的代码写入文件,调用DIFFTOOLenv var引用的可执行文件(elsediff.exefromPATH,否则为默认NUnit行为)并调用Assert.Fail()带有适当的消息。您

我正在为代码生成器编写单元测试,我的大多数测试都会将跨越几行的输出与一些黄金输出进行比较。目前,我正在将输出与
Assert.AreEqual(string,string)
进行比较,后者显示第一个差异周围的上下文


不幸的是,这不是很有帮助。理想情况下,我希望得到不同的输出这样做的最佳方式是什么?我当前的计划是将生成的代码写入文件,调用
DIFFTOOL
env var引用的可执行文件(else
diff.exe
from
PATH
,否则为默认NUnit行为)并调用
Assert.Fail()
带有适当的消息。

您可以通过将
.NoClip
指定为
EqualConstraint
的修饰符来消除长字符串的剪裁。这要求您从传统的
Assert.AreEqual
切换到使用断言的约束模型:

C#
Assert.That(实际的,Is.EqualTo(预期的).NoClip);

这将为您提供两个字符串的完整值,但如果不重新格式化,可能很难读取

我们一直有兴趣改进两个长字符串之间差异的显示。来做公关吧!:-)