VS 2012中的代码覆盖问题

时间:2013-05-12 07:04:40

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

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

这些测试中的每一个都成功运行完成,但Code Coverage窗口给出了以下错误:

  

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

我做了一些研究,但到目前为止还没有解决我的问题。

  • 我知道测试运行
  • 我的.pdb文件与我的.dll
  • 位于同一位置
  • 我没有受到代码的影响
  • 我找不到任何.testsettings文件
  • 我也以管理员的身份运行我的VS 2012旗舰版,但没有运气。

如果我找到.coverage文件,其中包含的全部内容是:

PCHÿ

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:4)

如果即使在删除* .suo文件后也无法使代码覆盖率生效,请检查事件查看器是否有错误。在我的情况下,每次运行后我都有以下错误:

“由于缺少检测方法,TraceLog Profiler在初始化时失败,进程vstest.executionengine.x86.exe”

我找到了答案here

如果链接不再可用,我会在此处粘贴内容:

  

如果您发现自己有一个空的.coverage文件并看到错误   类似于你的事件日志中的下面你很可能有一个   腐败安装

     

(info).NET Runtime版本4.0.30319.17929 - 分析器具有   请求CLR实例不将探查器加载到此中   处理。 Profiler 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)“\ Team”中存在covrun32.dll和covrun64.dll   工具\动态代码覆盖率“

祝你好运,

Nadav