Сбой MsTest при запуске модульных тестов в составе CI с использованием TFS 2008 - PullRequest
0 голосов
/ 12 марта 2011

Моя конфигурация:

  • Решение VS2010
  • TFS 2008
  • Сервер сборки - TFS 2008
    • Сервер сборки также имеет VS2008 Team Suite иОкончательная установка VS2010

TFS 2008 правильно создает мое решение VS2010.Но когда приходит время запустить модульные тесты, я получаю следующую ошибку MsTest:

Использование задачи «TestToolsTask» из сборки «D: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ PrivateAssemblies\ Microsoft.VisualStudio.QualityTools.MSBuildTasks.dll».Задача " TestToolsTask " Команда:
d: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe / nologo / searchpathroot: "D: \ Builds \ App \ Source \ 86 \Двоичные файлы "/ resultsfileroot:" D: \ Builds \ App \ Source \ 86 \ TestResults "/testcontainer:"D:\Builds\App\Source\86\Binaries\\Tests.dll" / publish: "http://tfsServer:8080/" / publishbuild: «vstfs: /// Build / Build / 26029» / teamproject: «Предложение» Задача «TestToolsTask» использует «MSTest.exe» из «d: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE»\ MSTest.exe ". Платформа не указана для операции публикации. Для синтаксиса коммутатора введите" MSTest / help " MSBUILD: предупреждение MSB6006:" MSTest.exe "завершен с кодом 1. [D: \ Builds \ App \ Source \ 86 \ BuildType \ TFSBuild.proj] Предыдущая ошибка была преобразована в предупреждение, потому что задача была вызвана с ContinueOnError = true. Сборка продолжается, поскольку "ContinueOnError" в задаче "TestToolsTask"установлено в" true ". Завершено выполнение задачи" TestToolsTask "- FAILED.

Я не уверенчто приводит к сбою MsTest.

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

Ответы [ 2 ]

2 голосов
/ 13 марта 2011

Вы можете выполнить сборку VS2010 из MSBuild TFS2008, но похоже, что она использует Visual Studio 9.0 TestToolsTask (2008), чтобы попытаться запустить тестовый проект Visual Studio 10.0 (2010) (MSTest.exe). Я бы попробовал настроить MSBuild для запуска TestToolsTask из папки «Microsoft Visual Studio 10.0», а не «9.0», чтобы весь процесс использовал одну и ту же версию инструментов. Вы можете переопределить пути инструментов в Свойствах вашего файла tfsbuild.proj, чтобы убедиться, что для сборки используется правильная версия Visual Studio - что-то похожее может относиться к инструментам тестирования.

В качестве альтернативы, он правильно запускает инструменты тестирования VS2010, но все еще пытается использовать командную строку, относящуюся к 2008 году - проверьте настройки и посмотрите, можете ли вы настроить командную строку (вам может потребоваться переопределить файлы целей MS, которые выполняет сборку, если это версия 2008 года). Например, в TFS 2010 многие командные строки изменились с использования простого «server: MyServer» на что-то вроде «collection: http://MyServer:8080/tfs/MyCollection".». Поэтому вам, возможно, придется изменить командную строку, чтобы получить полную совместимость с версией инструмента 2010 года. теперь он работает, даже если в конечном итоге он указывает на сервер 2008 года.

Мое третье предложение (которое не обязательно очень полезно) - просто обновить до TFS2010 - обычно это безболезненная установка, значительно лучше, чем в 2008 году, и она устранит любые трудности, вызванные использованием гибридной установки 2008/2010. (Если это поможет, я неохотно обновлялся до 2010 года, потому что обновление 2005-> 2008 годов было 8 днями ада. Но по сравнению с этим ядро ​​обновления до 2010 года заняло всего несколько часов и «просто сработало» - установка / процесс обновления значительно улучшился)

0 голосов
/ 15 марта 2011

У Джейсона была правильная идея, которая привела меня к правильному решению.

В моем случае мне пришлось обновить «Microsoft.TeamFoundation.Build.targets», указав «Microsoft.TeamFoundation.Build.ProcessComponents.dll» (VS2010 dll) вместо «Microsoft.VisualStudio.QualityTools.MSBuildTasks». dll "(VS2008 dll)

Я также должен был убедиться, что PlatformToBuild был указан в файле TfsBuild.proj.

После того, как были выполнены эти 2 шага, UnitTests выполнялись как часть сборки CI с использованием TFS2008 и решения VS2010.

Я подробно рассказал о решении здесь: http://blog.aggregatedintelligence.com/2011/03/vs2010-tfs-2008-and-unit-tests.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...