TFS 2017 — запланированная сборка не проходит некоторые модульные тесты, закрытая проверка работает

У меня есть приложение Winforms (архитектура MVP), использующее .NET 4.6.2 и C # 7.

В TFS 2017 у нас есть 2 определения сборки для приложения: 1. закрытая регистрация, которая работает постоянно. 2 Запланированная сборка, которая выполняется в 23:00 с понедельника по пятницу. - что не работает.

Определения сборки почти идентичны (восстановление nuget, VS Build с 2017, запуск тестов...) и создают одно и то же решение. Единственное отличие состоит в том, что запланированная ночная сборка дополнительно запускает анализ кода и включает покрытие кода. Платформа и конфигурация — любой процессор | Выпуск.

Запланированная ночная сборка не прошла 8 тестов. Некоторые тесты вызывают асинхронные методы в SUT, но другие довольно ванильны, поэтому я не вижу какой-либо закономерности.

Тестовые проекты зависят от следующих пакетов nuget:

  • MSTest.TestAdapter 1.1.18
  • MSTest.TestFramework 1.1.18
  • Минимальный заказ 4.2.1507.118

Единственное отличие, которое я вижу, это то, что Gated checkin ставится в очередь под именем разработчика, тогда как запланированная вечерняя сборка запускается Microsoft.TeamFoundation.System.

Версия TL:DR: как определить, почему тесты не запускаются ночью, но нормально работают с закрытой регистрацией?


person Scott    schedule 21.09.2017    source источник
comment
Используют ли они один и тот же агент сборки? Есть какие-нибудь логи, чтобы это отследить?   -  person Andy Li-MSFT    schedule 22.09.2017
comment
Привет Энди, извините за задержку с ответом. Они используют один и тот же агент сборки, и я быстро просмотрел журналы, и единственное, что я вижу (или, скорее, признаю проблемой), — это неудачные тесты.   -  person Scott    schedule 26.09.2017


Ответы (1)


Пожалуйста, попробуйте следующие пункты, чтобы сузить проблему:

  • Проверьте, используют ли определения один и тот же агент сборки, если нет, попробуйте использовать один и тот же агент сборки.
  • Разверните новый агент для запланированного определения сборки.
  • Оставьте все то же самое для обоих определений сборки, кроме опции Gated Check-in. Это означает отключить code analysis and code coverage для запланированного определения сборки.
  • Также включите Gated Check-in для запланированного определения.

Затем проверьте это снова.

Согласно этой теме, есть проблема с запланированной сборкой более ранней версии TFS 2017. Таким образом, если вы используете более раннюю версию, чем Update1 RC2, вы можете попробовать выполнить обновление до последней версии, а затем повторить попытку.

Для проверки версии перейдите по этой ссылке: https://blogs.msdn.microsoft.com/tfssetup/2013/11/21/what-version-of-team-foundation-server-do-i-have/< /а>

person Andy Li-MSFT    schedule 22.09.2017
comment
Хорошо, я сделал то, что вы сказали. Подожду до завтрашнего утра, прежде чем вернусь к вам. Можете ли вы сказать мне какую-либо причину, по которой ручная постановка в очередь запланированной вечерней сборки с включенным покрытием кода и анализом кода работает нормально? Спасибо за вашу помощь, очень признателен. - person Scott; 26.09.2017
comment
Привет, я удалил анализ кода и настройки покрытия кода, но сборка все еще не удалась из-за неудачных тестов. Опять же, когда я ставлю сборку в очередь вручную в TFS, сборка завершается успешно. - person Scott; 27.09.2017
comment
@Scott Как насчет создания нового определения запланированной сборки? также попробуйте отключить тестовые шаги в определении сборки, а затем повторите попытку. И какая точная версия TFS 2017? проверьте, что согласно эта ссылка. В более ранней версии есть аналогичная проблема, проверьте эта тема. Итак, если вы используете более старую версию, просто попробуйте обновить ее до последней версии. - person Andy Li-MSFT; 28.09.2017
comment
Энди, очень извиняюсь за задержку с ответом - я не видел уведомление. Попробую создать новую запланированную сборку def. Версия TFS — 15.117.26714.0 (Tfs2017.Update2). - person Scott; 04.10.2017