当我尝试用我的声纳跑步者分析我的VS2012 C#解决方案时,我遇到了一个恼人的Gallio问题。当Gallio尝试启动我的单元测试时,我可以在日志中找到这个问题:
[error] Assembly XXXX
Cannot run tests because MSTest executable was not found
我已经尝试了一些解决方案暴露here和here的命题(我已经为VS 2012安装了代理,我已经添加了一个注册表项,其中包含我的VS2012安装路径)但似乎没有工作。
提前感谢您的帮助。
编辑:
似乎这个问题来自Gallio源代码中的硬编码注册表值,因为当我尝试将VS2010的InstallDir注册表项添加到指向我的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服务器中。
答案 0 :(得分:2)
将以下内容添加到位于C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config
的machine.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 =&gt; C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Common7 \ IDE \” 到以下位置 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\ VisualStudio的\ 10.0
然后运行以下命令 regsvr32“C:\ YourSonarInstalation \ opencover \ x86 \ OpenCover.Profiler.dll
这里正在讨论这个问题。几天前发布了上述潜在解决方案。 https://code.google.com/p/mb-unit/issues/detail?id=899
答案 1 :(得分:1)
对于Visual Studio 2013和.net 4.5这是一个类似的过程。
将以下内容添加到位于C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config和/或C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config:<的machine.config中/ p>
<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的注册表项,其值为&#34; InstallDir =&gt; C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \&#34;到以下位置HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0
然后运行以下命令regsvr32&#34; C:\ Program Files(x86)\ OpenCover \ x86 \ OpenCover.Profiler.dll&#34;