2017-09-13 15 views
0

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テストエクスプローラを試しましたが、それは問題を解決しません。

答えて

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

関連する問題