xUnitをVisual Studioテストエクスプローラで使用していて、Assert.Equal()
にエラーがある場合、実際と予想の切り捨てバージョンが取得されています。xUnitが切り捨てられていることを示しています。テストエクスプローラで期待と実績
Message
sが異なっているので、例えば、
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が切り捨てられることを考えると、私は、彼らが実際にテストエクスプローラ異なっている部分を見ることができません。私がそれをコピーしても、それはまだ切り詰められています。
これはxUnitの既知の欠点ですか?私はテストをデバッグし続けるか、またはWriteLine
を使ってを比較することができますが、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