TFS 2013 - нет результатов покрытия кода
У меня есть TFS 2013
настройка среды, и я пытаюсь получить TFSBuild
собрать результаты покрытия моего кода после сборки.
Тесты работают нормально, но, что бы я ни пытался, я получаю сообщение "Нет результатов покрытия кода".
Я читал о "Службе анализа покрытия кода", но она вообще не установлена на моих серверах, и я не могу найти ее нигде.
Я прошел процесс сборки, чтобы убедиться, что у меня "Автоматические тесты -> Источник теста -> Настройки запуска -> Тип настроек запуска", установленный на CodeCoverageEnabled
, но что бы я ни пытался сделать, я не могу опубликовать результаты в базе данных служб Analysis Services, чтобы запустить Code Coverage Reports
,
Я попытался запустить файл настроек запуска, но безуспешно, поэтому я вычеркнул это из уравнения.
Любая помощь будет принята с благодарностью!
5 ответов
Я просто выяснил, в чем проблема, что мое покрытие кода не рассчитывалось на сервере сборки. Я понял это с помощью службы поддержки Microsoft, и это небольшая ошибка пользовательского интерфейса.
Шаги для воспроизведения: создайте новое определение сборки.
- Перейдите на вкладку процесса определения сборки и выберите файл решения для сборки.
- Теперь разверните раздел "Автоматизированные тесты" и раскройте "Источник теста".
- Разверните "Настройки запуска" и измените "Тип настроек запуска" с "По умолчанию" на "CodeCoverageEnabled".
- Сохраните определение сборки и запустите сборку.
- Изучите результаты сборки и обратите внимание, что покрытие кода не рассчитывается.
Чтобы исправить эту проблему, используйте другой интерфейс определения сборки.
- Выберите узел "Автоматизированные тесты".
- Теперь в этом ряду справа вы увидите кнопку с "...". Нажмите на него, и откроется диалоговое окно.
- Нажмите "Редактировать", чтобы редактировать ваш тестовый источник. Вы увидите, что покрытие кода включено. Если нет, выберите его.
- Нажмите Ok и Ok еще раз, чтобы закрыть два диалога.
- Теперь сохраните определение сборки и снова запустите сборку.
Теперь покрытие кода вычисляется!!! Служба поддержки Microsoft представила ошибку команде разработчиков, и я думаю, она будет исправлена в следующем выпуске. Небольшая ошибка, но это стоило мне более двух дней, чтобы найти ошибку!
У вас установлена сборка Premium или Ultimate Visual Studio на вашем компьютере? Любой из них требуется, чтобы получить результаты покрытия кода обратно в TFS
Вышеуказанные обходные пути не сработали (обновление 5 для VS2015 и обновление 3 для TFS2013).
В моем случае Visual Studio не был установлен на сервере сборки, что является требованием для получения результатов покрытия кода.
Из MSDN
Microsoft Visual Studio должна быть установлена на сервере сборки для следующих сценариев:
- Для создания любого тестового проекта CPP необходимо установить Visual Studio Professional или более позднюю версию.
- Для запуска модульных тестов или кодированных тестов пользовательского интерфейса необходимо установить Visual Studio Professional или более позднюю версию.
Чтобы использовать данные и диагностические адаптеры данных:
- Code coverage: Visual Studio Premium or later. - Test impact: Visual Studio Ultimate. - IntelliTrace: Visual Studio Ultimate.
Для создания приложений современного стиля на компьютере сборки: Visual Studio Ultimate или Visual Studio Express для Windows 8 (операционная система на сервере сборки должна быть Windows 8).
- Чтобы скомпилировать и запустить тесты для проекта с поддельной сборкой: Visual Studio Ultimate.
Я думаю, что "другое окно" относится к щелчку правой кнопкой мыши по файлу "Local.testsettings" решения (или другим файлам [ ].testsettings), выбору "Open" и навигации по различным настройкам. Если для переключателя "Место выполнения теста" установлено значение "Запускать тесты с использованием локального компьютера или контроллера тестирования", в разделе "Данные и диагностика" для параметра "Охват кода (Visual Studio 2010)" используется параметр.
Я использую локальный сервер сборки с Visual Studio онлайн с файлом.runsettings, и у меня была точно такая же проблема.
Ничто из вышеперечисленного не помогло, поэтому я протестировал скрипт сборки на размещенном контроллере сборки, и он работал нормально, поэтому решил, что проблема должна заключаться в самом сервере сборки.
Я изменил учетную запись службы сборки с "Сетевая служба" на обычную учетную запись пользователя Windows в TFS Configuration Tool, и теперь покрытие кода собрано. Обратите внимание, что этому пользователю потребуется доступ к каталогам сборки TFS.