Вывод на консоль отсутствует в выпуске DevOps Azure при включении "Указать размер пакета"
У нас есть большой набор тестов (на основе NUnit) в DevOps Azure. Недавно мы включили опцию "Rerun fail tests" в задаче тестирования Visual Studio. Сначала это не сработало из-за ошибки в VSTest при обработке пользовательских отображаемых имен тестов (которые необходимы для наших тестов). Тесты все равно будут запускаться только один раз. Однако, установив размер пакета, эта проблема исправлена, и тесты наконец-то повторяются правильно.
Это прекрасно работает, за исключением одного странного эффекта... без видимой причины, подробные журналы больше не показывают наши собственные выходные данные (сгенерированные Console.WriteLine). Это работало без проблем раньше. Все, что мы получаем сейчас, это вывод по умолчанию и окончательный результат теста.
Журналы без "Указать размер пакета" более информативны:
Сами журналы все еще пишутся: мы знаем, что (почти) вся информация также включена для каждого теста. Это показано в результатах теста:
Кроме того, простое отключение параметра размера пакета заставляет журналы появляться снова.
У кого-нибудь есть идеи, что вызывает такое поведение и как это исправить? Пока что переключение между Console.Writeline/Trace.Writeline/Debug.Writeline и т. Д. Не помогло, и я не нашел много другой информации об этой конкретной проблеме... и есть определенные ситуации, когда один полный журнал файл необходим (или более практичен), поэтому было бы неплохо, если бы нам удалось выполнить как повторные попытки, так и полную регистрацию.
Заранее спасибо!
0 ответов
Я также разместил вопрос на developercommunity.visualstudio.com. Обсуждение заняло немного времени, но в итоге был получен следующий ответ:
"Поддерживаемое поведение заключается в том, чтобы информация о трассировке из тестов присутствовала как часть файла результатов теста (trx)/ журналов стандартной консоли, а не как часть журналов сборки (как вы упомянули в своем вопросе). Обратите внимание, что это также зависит от используемой среды тестирования. Планируется, что поток информации трассировки в журналы сборки из теста не планируется. Различное поведение, которое вы видите при включении опции Пакетная обработка, связано с тем, что внутренний поток выполнения изменяет бит (и в конечном итоге все потоки будут сходиться к тому же, что и пакетный вариант в ближайшие дни). Мы рекомендуем не принимать зависимость от журналов сборки. Вместо этого вкладка "Тест" - это место, в котором вы получите лучшие журналы в контексте тестового примера / тестового прогона. "
Полный вывод тестового прогона должен быть доступен в файлах trx, найденных в тестовом прогоне. После проверки это действительно так:
Открывая файл в Notepad++, я наконец вижу журналы моего полного запуска:
- Все эти строки написаны с использованием Console.WriteLine ().
- Если существует больше файлов trx, чем одного, то в самом большом файле хранятся журналы полного цикла: в маленьком файле есть журналы только для выбранного теста.
ПРИМЕЧАНИЕ. Мы обнаружили, что во время тайм-аута теста этот файл не создается. Об этом было сообщено Microsoft и признано проблемой:
"Суть в том, что мы работаем над расширенной диагностикой в задаче vstest. Например, мы прервем тест, если тест занимает больше времени. В этом случае будет также создан дамп процесса тестирования, и мы, конечно, будет также загружен trx. Во втором сценарии, когда не периодический тест требует времени, но общее время выполнения заканчивается, мы возьмем дамп процесса тестирования и прервем выполнение. Дампы помогут вам решить проблему. "
Где-то в будущем этот дамп должен быть доступен для использования.