2017-09-13 34 views
0

Visual Studio 테스트 탐색기에서 xUnit을 사용하고 있고 Assert.Equal()에 오류가있는 경우 실제 및 예상치의 잘린 버전이 나타납니다. 예를 들어xUnit이 잘림 표시됨 테스트 탐색기에서 예상 및 실제 발생

Message의이 다르기 때문에이 테스트에 실패

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들립니다 주어진, 나는 그들이 실제로 테스트 탐색기에서 다른 부분을 볼 수 없습니다. 내가 그것을 복사해도, 그것은 여전히 ​​잘립니다.

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