4

У меня есть решение Visual Studio 2012 с использованием платформы .NET 4.5. Остальная часть нашей системы разработки - TFS2010. В последнее время некоторые из наших модульных тестов терпят неудачу только на сервере сборки. Пройдя несколько раундов отладки, я смог определить, что причиной неудачных тестов было, скорее всего, из-за того, что версия MSTest используется на сервере сборки. Проверяемые тесты проходят при запуске из VS2012 на моем локальном компьютере и при запуске из VS2012 на фактическом сервере сборки.Выполнение модульных тестов VS2012 от TFS2010 Team Build

Я следовал шаги, описанные в следующих статьях (я не нашел каких-либо полезных статей, непосредственно относящихся к VS2012 и TFS2010) без успеха: Running VS2010 UnitTests project from TFS2008 Team Build и VS2010, TFS 2008 and Unit Tests

На сервере сборки Теперь у меня есть следующие:

  • VS2010 SP1 Окончательный установлен
  • VS2012 Update 3 установлен
  • .NET Framework 4.5 SDK установлен
  • Изменен файл Microsoft.TeamFoundation.Build.targets в «C: \ Program Files (86) \ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \" и "C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \", поэтому AssemblyFile атрибут TestToolsTask построить задачу указал на "C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ PrivateAssemblies \ Microsoft.TeamFoundation.Build.ProcessComponents.dll"

у меня есть 2 сборки определения, которые я тестировал с:

  1. в первом определении сборки я оставил траектория активности заготовки «запустить MS Test», так что затем использует «C: \ Program Files (x86) \ Microsoft Visual Studio 1 0,0 \ Common7 \ IDE»
  2. В другом определении сборки я изменил "Run MS Test" параметр активности Траектория в "C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE"

Оба строят появляются определения, которые будут строить правильно и с помощью следующей MSBuild.exe: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

Первая сборка Defintion запускает версию VS2010 от MStest с любыми ошибками, но 5 из прибл. 2030 тестов не удается. Эти тесты не выходит из строя при запуске изнутри Визуального Studaio 2012. Примера из командной строки (фактические пути и имена серверов удалены):

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe 
/nologo /usestderr /searchpathroot:"d:\Builds\xxxxx\Binaries" 
/resultsfileroot:"d:\Builds\xxxxx\TestResults" /testcontainer:"d:\Builds\xxxxx.dll" 
/testcontainer:"d:\Builds\xxxxx.dll" /publish:"http://xxxxx 
/publishbuild:"vstfs:///Build/Build/xxxxx" /teamproject:"xxxxx" /platform:"x86" /flavor:"Debug" 

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

The MSTestActivity was invoked without a value for Platform or Flavor. The values x86 and Debug were used. 

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MSTest.exe 
    /nologo /usestderr /searchpathroot:"d:\Builds\xxxxx\Binaries" 
    /resultsfileroot:"d:\Builds\xxxxx\TestResults" /testcontainer:"d:\Builds\xxxxx.dll" 
    /publish:"http://xxxxx" /publishbuild:"vstfs:///Build/Build/xxxxx" /teamproject:"xxxxx" 
    /platform:"x86" /flavor:"Debug" 
    Invalid switch "/publish". 
    Invalid switch "/publishbuild". 
    Invalid switch "/teamproject". 
    Invalid switch "/platform". 
    Invalid switch "/flavor". 
    For switch syntax, type "MSTest /help" 

Я сделал много прогонов этого но я не смог решить проблему. Есть ли что-то еще, что мне не хватает, что нужно сделать либо на сервере сборки, либо в определении сборки?

В отношении фактических тестов, которые не имеют общего результата, они сравнивают объекты в списках, но, как уже упоминалось, они проходят при запуске из VS2012.

ответ

4

Установка VS2012 Ultimate на сервере сборки вызвала ошибки Invalid switch при запуске MSTest, чтобы уйти, и MSTest может успешно работать. Ранее я установил VS2012 Professional и VS2012 Team Explorer, но эти выпуски «очевидно» (обнаруженные после множества отладочных проб!) Не содержат требуемую версию MSTest. Информация о параметрах командной строки MSTest не упоминает об этом (MSDN Command-Line options for publishing tests), отметив, что необходимо установить Team Explorer.

Смежные вопросы