我在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測試瀏覽器,並沒有解決問題。
我已經在2017.3。即使當我調整窗口大小時,消息也會被截斷,始終在相同的位置(中間)。 他們可能已經修復了類似的MSTest,也許?我會在控制檯上試試看看它是否是xUnit問題。 – KangarooWest
正如所料,這在控制檯中是一樣的,所以這是一個xUnit問題。起初,我想通過手動添加一條消息來解決這個問題,但是,唉,他們也不支持開箱即用: https://stackoverflow.com/questions/42203169/how-to-implement-xunit-descriptive-assert-message 我可以通過做Assert.True,它有一個消息過載,但是這是一個解決方法我真的很討厭這樣做:( – KangarooWest
你看起來是對的,我會看看我是否可以提交一個拉請求來允許這個配置。https://github.com/xunit/xunit/blob/d2935cc4bd9d77df49239f2e6a7174dbe09d1e47/src/ xunit.runner.visualstudio/Sinks/VsDiscoverySink.cs – ovation22