xUnit, показывающий усеченные ожидаемые и фактические значения в обозревателе тестов

Я использую xUnit с обозревателем тестов Visual Studio, и когда возникает ошибка в Assert.Equal(), я получаю усеченную версию фактического и ожидаемого.

Например,

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 отличаются, но, учитывая, что Messages усечены, я не вижу той части, где они на самом деле отличаются от обозревателя тестов. Даже когда я его копирую, он все равно обрезается.

Является ли это известным недостатком xUnit? Я могу продолжить отладку теста или использовать WriteLine для сравнения Message, но я удивлен, что платформа xUnit не позволяет отображать полный ответ. Я также попробовал тестовый проводник Resharper, и это не решает проблему.


person KangarooWest    schedule 13.09.2017    source источник


Ответы (2)


Похоже, это ограничение Visual Studio. Похоже, это решено с помощью Visual Studio 2017.3.

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

person ovation22    schedule 14.09.2017
comment
Я уже на 2017.3. Даже когда я изменяю размер окна, сообщение обрезается всегда в одном и том же месте (посередине). Может быть, они исправили что-то подобное для MSTest? Я попробую это на консоли, чтобы убедиться, что это проблема xUnit. - person KangarooWest; 14.09.2017
comment
Как и ожидалось, это то же самое в консоли, так что это проблема xUnit. Сначала думал исправить это добавлением сообщения вручную, но увы, из коробки это тоже не поддерживается :| stackoverflow.com/questions/42203169 / Я могу использовать обходной путь, выполнив Assert.True, который имеет перегрузку сообщений, но это то, что я действительно ненавижу делать :( - person KangarooWest; 14.09.2017
comment
Похоже, ты прав. Я посмотрю, смогу ли я отправить запрос на вытягивание, чтобы это можно было настроить. github.com/xunit/xunit/ блоб/ - person ovation22; 14.09.2017
comment
Ах, спасибо! Что 447 — магическое число. Похоже, что беглое утверждение github.com/fluentassertions/fluentassertions может предоставить эту возможность, поэтому я Пойдем с этим сейчас. - person KangarooWest; 14.09.2017

Оказывается, это проблема xUnit.

ovation22 указывает ниже точное расположение кода, который контролирует это жесткое ограничение на количество символов.

Я обошел эту проблему, используя библиотеку FluentAssertions. Ошибка от xUnit, используемая с FluentAssertions, не усекает сообщения об ошибках.

person KangarooWest    schedule 20.09.2017