Отсутствует покрытие кода при сборке приложений .NET 4 в Team Build 2008 - PullRequest
3 голосов
/ 12 августа 2010

Я строю решения VS2010 на агенте сборки TFS2008 с установленным VS2010 Ultimate;код компилируется нормально, и все тесты работают нормально, но когда дело доходит до покрытия кода, ничего не сообщается.Я проверил, что в файле .testsettings включена функция Code Coverage, и что я выбрал некоторые сборки для прибора, и если я запускаю тесты локально на моем ПК разработчика, покрытие кода анализируется и сообщается успешно.

Однакопри сборке на сервере сборки покрытие кода не сообщается.Я вижу файл data.coverage, который находится в папке сборки TestResults \ guid \ In \ MachineName, так что он, очевидно, что-то сделал, но в журналах сборки ничего не говорится о покрытии кода и предупреждениях / ошибках.

Обновление: проверка на самом сервере TFS, журнал приложения содержит следующую ошибку:

Служба анализа покрытия кода не смогла проанализировать данные покрытия кода для сборкиDaily Build> 20100812.2 (любой процессор / отладка).Это часто вызывается публикацией разных версий одного и того же двоичного файла в конкретную сборку.Обработка данных покрытия кода из прогона svcTFSService @ W2411193 2010-08-12 12: 52: 34_Any CPU_Debug вызвала следующее исключение: Ошибка при создании информации покрытия: Ошибка загрузки файла символов.Файлы символов и двоичные файлы должны находиться в той же папке, что и файл покрытия, или по пути символов: D: \ Source \ CommonPlatform \ Common Platform Development Daily Build \ Binaries \ Debug \ Core.dll.

Тем не менее, когда я смотрю на агент сборки в указанной папке, и сборка, и ее файл символов отладки находятся в ожидаемом месте.

Обновление 2: По какой-то причине я попытался открытьФайл data.coverage, который я упоминал выше в VS 2010 об агенте сборки, и я получаю следующую ошибку:

Механизм анализа покрытия кода выдал исключение (я): Файл изображения "D: \ Source \CommonPlatform \ Common Platform Development Daily Build \ Binaries \ Debug \ Core.dll "не найден.

Тем не менее, я отчетливо вижу файл, расположенный в файловой системе, а также ее PDB.

Ответы [ 2 ]

3 голосов
/ 11 января 2011

Вы не можете иметь покрытие кода с использованием кода TFS 2008 и .Net 4. Вы должны перейти на TFS 2010. http://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/39aaaf43-0e3a-41c7-8b72-c1cabc9438e1/

0 голосов
/ 12 августа 2010

Проверьте, совпадают ли временные метки файла как в файле символов, так и в сборке. Они не должны быть выключены более чем на секунду (или не более двух). Если это так, возможно, вы создаете Core.dll в нескольких местах, и только один создает файл символов.

Это может быть длинный выстрел, но, вероятно, это хорошее место для старта.

...