2017-09-13 27 views
0

我在Visual Studio Test Explorer中使用xUnit,並且在Assert.Equal()中出現錯誤時,我得到Actual和Expected的截斷版本。xUnit在測試資源管理器中顯示截短的預期和實際值

例如,

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 s爲不同的測試失敗,但鑑於Message s爲截斷,我不能看到他們實際上從測試瀏覽器的不同部分。即使我將它複製出來,它仍然被截斷。

這是xUnit的一個已知缺點嗎?我可以繼續調試測試或使用WriteLine來比較Message,但我很驚訝xUnit框架沒有辦法顯示完整的響應。我也嘗試了Resharper測試瀏覽器,並沒有解決問題。

回答

0

事實證明,這是一個問題的xUnit。

ovation22積分下面的代碼的確切位置,控制這個字符數量的硬性限制的確切位置。

我已使用FluentAssertions庫代替繞過此問題。與FluentAssertions一起使用的xUnit中的錯誤不會截斷任何錯誤消息。

0

這似乎是Visual Studio的限制。這看起來是用Visual Studio 2017.3解決的。

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

+0

我已經在2017.3。即使當我調整窗口大小時,消息也會被截斷,始終在相同的位置(中間)。 他們可能已經修復了類似的MSTest,也許?我會在控制檯上試試看看它是否是xUnit問題。 – KangarooWest

+0

正如所料,這在控制檯中是一樣的,所以這是一個xUnit問題。起初,我想通過手動添加一條消息來解決這個問題,但是,唉,他們也不支持開箱即用: https://stackoverflow.com/questions/42203169/how-to-implement-xunit-descriptive-assert-message 我可以通過做Assert.True,它有一個消息過載,但是這是一個解決方法我真的很討厭這樣做:( – KangarooWest

+1

你看起來是對的,我會看看我是否可以提交一個拉請求來允許這個配置。https://github.com/xunit/xunit/blob/d2935cc4bd9d77df49239f2e6a7174dbe09d1e47/src/ xunit.runner.visualstudio/Sinks/VsDiscoverySink.cs – ovation22

相關問題