Gallio错误:未找到MSTest可执行文件
当我尝试使用声纳运行程序分析VS2012 C#解决方案时,我遇到了Gallio恼人的问题。当加利奥尝试推出我的单元测试,我可以在日志中找到此问题:Gallio错误:未找到MSTest可执行文件
[error] Assembly XXXX
Cannot run tests because MSTest executable was not found
我已经尝试过的解决方案提出了一些建议暴露here和here(我已经安装了代理商VS 2012和我添加了一个注册表项与我的VS2012安装路径),但似乎没有任何工作。
非常感谢您的帮助。
编辑:
看来,这个问题来自于公堂源代码中的硬编码的注册表值,因为当我尝试添加INSTALLDIR注册表项VS2010指向我的VS2012安装,我可以看到一个新的错误消息。
此新错误是相对于以下DLL的I/O异常:“Microsoft.VisualStudio.QualityTools.CommandLine.dll”版本10.0.0.0,我可以在我的GAC_MSIL目录中找到它,但在版本11中。我的结论是,Gallio不完全兼容VS2012和MSTest的相应版本。
我要调查以找到手动生成Sonar可以存储的单元测试报告的方法。
编辑2:
有最后没办法收集声纳MSTEST报告现在。我发现的唯一解决方案是将每个使用MSTest进行的单元测试转换为NUnit测试,以便能够用gallio运行它并将结果收集到Sonar服务器中。
以下添加到您的Machine.config位于C:\ WINDOWS \ Microsoft.NET \框架\ 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>
然后,你将需要添加一个名为安装目录有一个注册表项 到以下位置 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ VisualStudio的\ 10.0
然后运行:的 “\程序文件(x86)\微软的Visual Studio 11.0 \ Common7 \ IDE \ INSTALLDIR => C” 值以下命令 regsvr32“C:\ YourSonarInstalati on \ opencover \ x86 \ OpenCover.Profiler.dll
此问题正在讨论中。上面的潜在解决方案是在几天前发布的。 https://code.google.com/p/mb-unit/issues/detail?id=899
感谢您的回答,对我来说已经太迟了,但希望对其他开发者有用。 – Paul
它帮助了我:)。谢谢 –
对于Visual Studio 2013和.net 4.5这是一个类似的过程。
将以下内容添加到位于C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config和/或C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319的machine.config中: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)的\微软的Visual Studio 12.0 \ Common7 \ IDE \” 到以下位置HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ VisualStudio的\ 10。0
然后运行下面的命令REGSVR32 “C:\ Program Files文件(x86)的\ OpenCover \ 86 \ OpenCover.Profiler.dll”
这是一个耻辱......我想同样的事情,我不会将我的测试转换为NUnit。谢谢你为我节省了很多时间。 –