В TFS 2015 появилась новая система конфигурации сборок, которая в заметно лучшую сторону отличается от предыдущей системы, основанной на XAML. Конфигурирование билдов и создание собственных шагов сборки стало намного проще, и для этого больше не нужно обладать космическим набором знаний :)
Однако система новая, и поэтому некоторыми возможностями, которые были встроены в предыдущую версию, она пока не обладает.
С одной из таких проблем мы сегодня и разберемся.
Предыдущая система сборок предоставляла подробные email-оповещения о свалившихся тестах. В этих письмах, в частности, были перечислены упавшие тесты. В случае интеграционного тестирования это очень удобно: тесты зависят от внешних систем и поэтому могут иногда падать, и по списку непрошедших тестов легко диагностировать проблему и решить, нужно ли её исправлять, или это «типичная» проблема внешних систем, которая «пройдет» вместе со следующей сборкой.
В новой билд-системе email-оповещение выглядит так:
Информация подробная, но списка упавших тестов в ней нет. Для данной задачи мы написали небольшой build-step, который решает проблему и письмо выглядит как-то так:
Прошу любить и жаловать : TFSBuildTask-ReportFailingTests.
Исходный код powershell скрипта для задачи очень простой, так что описывать его нет никакой необходимости :)
Добавить build-step в свой TFS можно двумя способами:
- Склонировать/скачать репозиторий и добавить build-step в ТФС с помощью прилагающегося скрипта. Это потребует прав админа на ТФС, но зато этот шаг сборки можно будет с лёгкостью добавлять в сборки любых проектов через веб-интерфейс.
- Скачать собственно powershell скрипт, добавить его в систему контроля версий, а потом на этапе настройки сборки добавить скрипт в качестве Powershell build-task, с указанием на файл в вашем source control. Это не требует никаких дополнительных прав доступа.
Ну и последний этап, собственно добавление обработки в конкретный билд.
Выглядеть это должно как-то так:
Не забывайте ставить галочку напротив опции «Always run»!
Еще раз ссылка на репозиторий: https://github.com/Shaddix/TFSBuildTask-ReportFailingTests
P.S. Детальную информацию о создании собственных build-task и загрузке их в TFS можно найти по ссылке: https://blogs.infosupport.com/custom-build-tasks-in-tfs-2015/