2013-11-15 3 views
3

У меня есть неприятная проблема с Gallio, когда я пытаюсь проанализировать решение VS2012 C# с моим сонарником. Когда Gallio попытаться запустить мое модульное тестирование я могу найти эту проблему в журналах:Gallio error: MSTest исполняемый файл не найден

[error] Assembly XXXX 
    Cannot run tests because MSTest executable was not found 

Я уже пробовал некоторые предложения решений подвергаются here и here (я установил агент для VS 2012, и я добавил раздел реестра с указанием пути установки моего VS2012), но ничего не работает.

Благодарим вас за помощь.

EDIT:

Кажется, что этот вопрос пришел из жестких кодированного значения реестра в исходном коде Галлиона, потому что, когда я пытаюсь добавить ключ реестра InstallDir для VS2010, чтобы указать на мою установку VS2012 я могу видеть новое сообщение об ошибке.

Эта новая ошибка является исключением из-за следующей DLL: «Microsoft.VisualStudio.QualityTools.CommandLine.dll» версии 10.0.0.0, которую я могу найти в своем каталоге GAC_MSIL, но в версии 11. Я пришел к выводу, что Gallio не полностью совместима с VS2012 и соответствующей версией MSTest.

Я собираюсь исследовать, чтобы найти способ вручную генерировать отчеты об испытаниях модулей, которые Sonar сможет хранить.

EDIT 2:

Там не, наконец, нет возможности собрать MSTest отчеты в сонара на данный момент. Единственное решение, которое я нашел, - это преобразовать каждый модульный тест с MSTest в тест NUnit, чтобы он мог запускать его с gallio и собирать результаты на моем сервере Sonar.

+0

Это позор ... Я пытаюсь то же самое и я НЕ собираюсь конвертировать мои тесты в NUnit. Спасибо, что спасли меня много времени. –

ответ

2

Добавьте следующую строку в ваш machine.config, расположенный в C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.CommandLine" 
       publicKeyToken="b03f5f7f11d50a3a" 
       culture="neutral" /> 
     <bindingRedirect oldVersion="10.0.0.0" 
       newVersion="11.0.0.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Затем вам нужно будет добавить ключ реестра под названием InstallDir с значение "InstallDir => C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \" по следующему адресу HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0

Затем запустите следующая команда regsvr32 "C: \ YourSonarInstalati на \ opencover \ x86 \ OpenCover.Profiler.dll

Вопрос рассматривается здесь. Потенциальное решение выше было опубликовано несколько дней назад. https://code.google.com/p/mb-unit/issues/detail?id=899

+0

Спасибо за ваш ответ, для меня уже слишком поздно, но, надеюсь, это будет полезно для других разработчиков. – Paul

+0

Это помогло мне :). благодаря –

1

Для Visual Studio 2013 и .net 4.5 Это аналогичный процесс.

Добавьте следующее в свой файл machine.config, расположенный по адресу C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config и/или C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.CommandLine" 
       publicKeyToken="b03f5f7f11d50a3a" 
       culture="neutral" /> 
     <bindingRedirect oldVersion="10.0.0.0" 
       newVersion="12.0.0.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Затем вам нужно будет добавить ключ реестра под названием InstallDir со значением "InstallDir => C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \" к следующему адресу HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0

Затем запустите следующую команду regsvr32 "C: \ Program Files (x86) \ OpenCover \ x86 \ OpenCover.Profiler.dll"

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