Gallio 错误:找不到 MSTest 可执行文件



当我尝试使用声纳运行器分析我的VS2012 C#解决方案时,Gallio遇到了一个烦人的问题。当 Gallio 尝试启动我的单元测试时,我可以在日志中找到此问题:

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

尝试了这里和这里公开的一些解决方案(我已经安装了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服务器中收集结果。

将以下内容添加到位于 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 => C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\"到以下位置 HKEY_LOCAL_MACHINE\软件\Wow6432Node\Microsoft\VisualStudio\10.0

然后运行以下命令 regsvr32 "C:\YourSonarInstalation\opencover\x86\OpenCover.Profiler.dll

这里正在讨论这个问题。上面的潜在解决方案是在几天前发布的。https://code.google.com/p/mb-unit/issues/detail?id=899

对于 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

    <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 => 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"

相关内容

  • 没有找到相关文章

最新更新