当我尝试使用我的声纳运行器分析我的 VS2012 C# 解决方案时,我遇到了一个恼人的问题。当 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 服务器中收集结果。