6

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

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

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

我做了一些研究,但迄今为止没有任何问题能解决我的问题。

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

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

PCHÿ

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

4

2 回答 2

5

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

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

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

于 2013-07-09T10:03:20.423 回答
4

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

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

我在这里找到了答案。

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

​</p>

如果您发现自己的 .coverage 文件为空,并且在事件日志中看到类似于以下的错误,则您很可能安装已损坏

(信息).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\tools

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

c) covrun32.dll 和 covrun64.dll 存在于“\Team Tools\Dynamic Code Coverage”中

祝你好运,

纳达夫

于 2014-02-12T12:46:43.050 回答