xUnit在测试资源管理器中显示截断的预期和实际值

时间:2017-09-13 20:09:26

标签: visual-studio xunit xunit.net test-explorer

我在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测试资源管理器,但这并没有解决问题。

2 个答案:

答案 0 :(得分:2)

这似乎是Visual Studio的限制。这看起来可以通过Visual Studio 2017.3解决。

https://developercommunity.visualstudio.com/content/problem/30703/test-explorer-result-text-truncated.html

答案 1 :(得分:1)

事实证明这是一个xUnit问题。

FluentAssertions点位于控制此字符数限制的代码的确切位置之下。

我已使用{{3}}库来绕过此问题。 xUnit与FluentAssertions一起使用的错误不会截断任何错误消息。