我在Visual Studio Test Explorer中使用xUnit,当Assert.Equal()
出现错误时,我得到的是实际和预期的截断版本。
例如,
Xunit.Sdk.EqualException
Assert.Equal() Failure
Expected: List<Result>
[Result {
Status = StatusEnumValue1,
Message = "The request or response type contains a special ty"...,
Path = "1234" }]
Actual: WhereListIterator<Result>
[Result {
Status = StatusEnumValue1,
Message = "The request or response type contains a special ty"...,
Path = "1234" }]
此测试失败,因为Message
不同,但鉴于Message
被截断,我看不到它们实际上与测试资源管理器不同的部分。即使我将其复制出来,它仍然会被截断。
这是xUnit的一个众所周知的缺点吗?我可以继续调试测试或使用WriteLine
来比较Message
但我很惊讶xUnit框架没有办法允许显示完整的响应。我也尝试过Resharper测试资源管理器,但这并没有解决问题。
答案 0 :(得分:2)
这似乎是Visual Studio的限制。这看起来可以通过Visual Studio 2017.3解决。
答案 1 :(得分:1)
事实证明这是一个xUnit问题。
FluentAssertions点位于控制此字符数限制的代码的确切位置之下。
我已使用{{3}}库来绕过此问题。 xUnit与FluentAssertions一起使用的错误不会截断任何错误消息。