Выходные данные консоли отсутствуют в выпуске Azure DevOps при включении Укажите размер пакета

У нас запущен большой набор тестов (на основе NUnit) в Azure DevOps. Недавно мы включили опцию «Повторно запустить неудачные тесты» в тестовой задаче Visual Studio. Сначала это не сработало из-за ошибки в VSTest с обработкой пользовательских отображаемых имен тестов (которые необходимы для наших тестов). Тесты по-прежнему выполняются только один раз. Однако, установив размер пакета, эта проблема устранена, и наконец-то повторяются правильно. Повторить неудачные тесты

Он отлично работает, за исключением одного странного эффекта ... без видимой причины в подробных журналах больше не отображается наш собственный вывод (сгенерированный Console.WriteLine). Раньше это работало без проблем. Все, что мы получаем сейчас, - это вывод по умолчанию и окончательный результат теста. Текущий выпуск

Журналы без включенного параметра «Указать размер пакета» более информативны:  Старые журналы

Сами журналы все еще ведутся: мы знаем, что, поскольку (почти) вся информация также включена в каждый тест. Это показано в результатах теста:  Результат одиночного теста

Кроме того, простое отключение параметра размера пакета заставляет журналы снова отображаться.

Кто-нибудь знает, что вызывает такое поведение и как его исправить? Пока переключение между Console.Writeline / Trace.Writeline / Debug.Writeline и т. Д. Не помогло, и я не нашел много другой информации об этой конкретной проблеме ... и есть определенные ситуации, когда есть один полный журнал файл необходим (или более практичный), поэтому было бы неплохо, если бы у нас были и повторные попытки, и полное ведение журнала.

Заранее спасибо!


person Tybs    schedule 20.02.2019    source источник


Ответы (1)


Я разместил вопрос на сайте developercommunity.visualstudio.com. Обсуждение заняло немного времени, но резюмируя, был дан следующий ответ:

«Поддерживаемое поведение заключается в том, чтобы информация трассировки из тестов присутствовала как часть файла результатов теста (trx) / журналов стандартной консоли, а не как часть журналов сборки (как вы упомянули в своем вопросе). обратите внимание, что это также зависит от используемой среды тестирования. Нет плана, чтобы поток информации трассировки в журналы сборки из теста. Различное поведение, которое вы видите, когда вы включаете параметр пакетной обработки, связано с тем, что внутренний поток выполнение немного изменится (и в конечном итоге все потоки будут сходиться к тому же, что и пакетный вариант в ближайшие дни). Мы рекомендуем не зависеть от журналов сборки. Вместо этого вкладка тестирования - это место, где вы попадете в лучшие журналы в контексте для тестирования / пробный запуск "

Полный вывод тестового прогона должен быть доступен в файлах trx, найденных в тестовом прогоне. После проверки это действительно так:

FullTestRunTrx

Открывая файл в Notepad ++, я наконец вижу логи моего полного запуска:

FullTestRunLogs

- Все эти строки написаны с помощью Console.WriteLine ().

- Если файлов trx больше, чем один, то в самом большом файле хранятся журналы всего выполнения: в маленьком файле содержатся журналы только для выбранного теста.

ПРИМЕЧАНИЕ. Мы обнаружили, что во время тайм-аута тестового запуска этот файл не создается. Об этом было сообщено в Microsoft и признано проблемой:

"понял суть. Мы работаем над расширенной диагностикой в ​​задаче vstest. Например, мы прервем тест, если тест занимает больше времени. В этом случае также будет создан дамп процесса тестирования. и, конечно, у нас также будет загружен trx. Во втором сценарии, когда не требуется время для специального теста, но общее время заканчивается, мы сделаем дамп процесса тестирования и прервем его. Дампы помогут вам отладить проблему. "< / em>

Где-то в будущем этот дамп должен быть доступен для использования.

person Tybs    schedule 01.04.2019