TFS 2013 - нет результатов покрытия кода

У меня есть TFS 2013 настройка среды, и я пытаюсь получить TFSBuild собрать результаты покрытия моего кода после сборки.
Тесты работают нормально, но, что бы я ни пытался, я получаю сообщение "Нет результатов покрытия кода".

Я читал о "Службе анализа покрытия кода", но она вообще не установлена ​​на моих серверах, и я не могу найти ее нигде.

Я прошел процесс сборки, чтобы убедиться, что у меня "Автоматические тесты -> Источник теста -> Настройки запуска -> Тип настроек запуска", установленный на CodeCoverageEnabled, но что бы я ни пытался сделать, я не могу опубликовать результаты в базе данных служб Analysis Services, чтобы запустить Code Coverage Reports,

Я попытался запустить файл настроек запуска, но безуспешно, поэтому я вычеркнул это из уравнения.

Любая помощь будет принята с благодарностью!

5 ответов

Я просто выяснил, в чем проблема, что мое покрытие кода не рассчитывалось на сервере сборки. Я понял это с помощью службы поддержки Microsoft, и это небольшая ошибка пользовательского интерфейса.

Шаги для воспроизведения: создайте новое определение сборки.

  1. Перейдите на вкладку процесса определения сборки и выберите файл решения для сборки.
  2. Теперь разверните раздел "Автоматизированные тесты" и раскройте "Источник теста".
  3. Разверните "Настройки запуска" и измените "Тип настроек запуска" с "По умолчанию" на "CodeCoverageEnabled".
  4. Сохраните определение сборки и запустите сборку.
  5. Изучите результаты сборки и обратите внимание, что покрытие кода не рассчитывается.

Чтобы исправить эту проблему, используйте другой интерфейс определения сборки.

  1. Выберите узел "Автоматизированные тесты".
  2. Теперь в этом ряду справа вы увидите кнопку с "...". Нажмите на него, и откроется диалоговое окно.
  3. Нажмите "Редактировать", чтобы редактировать ваш тестовый источник. Вы увидите, что покрытие кода включено. Если нет, выберите его.
  4. Нажмите Ok и Ok еще раз, чтобы закрыть два диалога.
  5. Теперь сохраните определение сборки и снова запустите сборку.

Теперь покрытие кода вычисляется!!! Служба поддержки 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.

Другие вопросы по тегам