3

我正在将 xUnit 与 Visual Studio 测试资源管理器一起使用,当 中出现错误时Assert.Equal(),我得到的是 Actual 和 Expected 的截断版本。

例如,

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" }]

此测试失败,因为Messages 不同,但鉴于Messages 被截断,我看不到它们实际上与测试资源管理器不同的部分。即使我把它复制出来,它仍然被截断。

这是 xUnit 的已知缺点吗?我可以继续调试测试或用于WriteLine比较Messages,但令我惊讶的是 xUnit 框架没有办法显示完整的响应。我还尝试了 Resharper 测试资源管理器,但这并不能解决问题。

4

3 回答 3

4

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

ovation22点位于控制此字符数硬限制的代码的确切位置下方。

我已经通过使用FluentAssertions库绕过了这个问题。与 FluentAssertions 一起使用的 xUnit 错误不会截断任何错误消息。

于 2017-09-20T17:34:30.130 回答
3

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

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

于 2017-09-14T01:37:19.613 回答
0

仅使用 xUnit 和 Visual Studio 查看完整信息的方法非常繁琐。我不熟悉 FluentAssertions,但听起来确实是一种更简单的方法。

以下是仅使用 Visual Studio 和 xUnit 查找未截断信息的步骤:

  1. 右键单击失败的测试(Ctrl+r、Ctrl+t 也可以)
  2. Visual Studio 中将显示一个带有异常的小弹出窗口
  3. 点击“查看详情”
  4. 这将弹出另一个名为 QuickWatch 的屏幕,其中包含完整未截断形式的所有相关信息。
于 2021-10-16T21:01:10.440 回答