【问题标题】:Issue with Code Coverage in VS 2012VS 2012 中的代码覆盖率问题
【发布时间】:2013-05-12 07:04:40
【问题描述】:

我有一个带有 3 个简单测试的简单 ASP.Net MVC 4 应用程序。

这些测试中的每一个都成功运行到完成,但是代码覆盖率窗口给出了以下错误:

生成空结果:未检测任何二进制文件。确保测试运行,加载所需的二进制文件,具有匹配的符号文件,并且没有通过自定义设置排除。欲了解更多信息,请参阅http://go.microsoft.com/fwlink/?LinkID=253731

我已经进行了一些研究,但迄今为止没有任何问题可以解决我的问题。

  • 我知道测试运行
  • 我在 .dll 所在的位置有 .pdb 文件
  • 我没有通过代码进行优化
  • 我找不到任何 .testsettings 文件
  • 我还以管理员身份运行了我的 VS 2012 Ultimate,但没有运气。

如果我找到 .coverage 文件,它的内容是:

PCHÿ

不是我期望的 xmls 结果或错误消息。

【问题讨论】:

  • 我遇到了这个问题,在我以管理员身份运行 Visual Studio 时解决了

标签: .net asp.net-mvc-4 visual-studio-2012 mstest code-coverage


【解决方案1】:

我意识到这已经一年多了。尽管如此,我刚刚遇到了完全相同的问题,甚至到 .coverage 文件中的“PCHÿ”文本,直到现在都没有找到解决方案。但肯定其他人也遇到过这个问题,以防万一,这里有一个简单的解决方案:

检查此MSDN link 并遵循其建议后,我仍然遇到同样的问题。所以,最后,我关闭了 VS,进入根解决方案目录并删除了 .suo 文件。它具有隐藏属性集,因此您可能需要将资源管理器设置为显示隐藏文件。

重新启动 VS 并重新运行代码覆盖率测试。一切都好。

【讨论】:

  • 你好,Shunty。这个问题仍然存在。我在其他地方发现提到删除他 .suo 文件并重新启动 VS 2012,但仍然没有运气。我还删除了整个 TestResults 文件夹并再次尝试,但没有成功。
  • 从那以后我就没有遇到过问题,所以我无法提供更多帮助。但是,也许,如果您的代码受源代码控制,您可以尝试将其签出到新位置并从那里构建/测试它,看看会发生什么。我确定它一定与 VS 管理的临时/本地文件之一有关,并且不应该进入源代码控制,因此它可能会起作用。
【解决方案2】:

如果您在删除 *.suo 文件后仍无法使代码覆盖率工作,请检查您的事件查看器是否有错误。就我而言,每次运行后我都会遇到以下错误:

“由于缺少检测方法,TraceLog Profiler 初始化失败,处理 vstest.executionengine.x86.exe”

我找到了答案here。

如果链接不再可用,我将内容粘贴在这里:

​

如果您发现自己有一个空的 .coverage 文件并看到错误 类似于您的事件日志中的以下内容,您很可能有一个 安装损坏

(info) .NET 运行时版本 4.0.30319.17929 - 探查器具有 要求 CLR 实例不将分析器加载到此 过程。探查器 CLSID:“{b19f184a-cc62-4137-9a6f-af0f91730165}”。 进程 ID(十进制):12624。消息 ID:[0x2516]。

(错误) TraceLog Profiler 初始化失败,因为缺少 检测方法,进程 vstest.executionengine.x86.exe

检查

a) 环境变量 VS110COMNTOOLS 设置为 \common7\工具

b) Regkey HKLM\SOFTWARE\Microsoft\VisualStudio\11.0\InstallDir 已设置 到您的 \Common7\IDE\

c) covrun32.dll 和 covrun64.dll 存在于 "\Team 工具\动态代码覆盖率”

祝你好运,

纳达夫

【讨论】:

  • 我的机器中没有covrun64.dll,并且代码覆盖率工作正常。这不是问题。
  • 感谢您的帮助!在我的情况下,环境变量设置不正确。没有错误消息,只是没有代码覆盖结果。
  • 很高兴我能帮上忙 ;-)
猜你喜欢
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多