代码覆盖率结果定期给出:生成空结果

mar*_*rkt 2 unit-testing mstest code-coverage visual-studio vs-unit-testing-framework

我在VS2012中使用MSTest的几个不同的项目遇到了一个反复出现的问题,我的代码覆盖不时地停止工作(看似随机)而是给了我:

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

我已经检查了显而易见的(它的建议),但似乎无法弄清楚是什么导致它.

这是我的runsettings文件:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage"
                     uri="datacollector://Microsoft/CodeCoverage/2.0"
                     assemblyQualifiedName=" Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, 
                                             Microsoft.VisualStudio.TraceCollector, 
                                             Version=11.0.0.0, 
                                             Culture=neutral, 
                                             PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>
            <ModulePaths>
              <Include>
                <ModulePath>.*\.dll$</ModulePath>
              </Include>
              <Exclude>
                <ModulePath>.*\.tests.dll</ModulePath>
              </Exclude>
            </ModulePaths>
            <Attributes>
              <Exclude>
                <Attribute>.*ExcludeFromCodeCoverageAttribute$</Attribute>
                <Attribute>.*GeneratedCodeAttribute$</Attribute>
              </Exclude>
            </Attributes>

            <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
            <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
            <CollectFromChildProcesses>True</CollectFromChildProcesses>
            <CollectAspDotNet>False</CollectAspDotNet>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)

Dav*_*isk 28

我刚刚使用 Visual Studio 2019 遇到了这个问题。解决方案是转到 VS 中的“测试”菜单项,然后将“测试”->“AnyCPU 项目的处理器架构”设置从 X86 更新为 X64。


Kar*_*rlZ 6

此链接解决了我的问题:VS 2012中的代码覆盖问题

关闭Visual Studio 2012,找到.suo文件,删除(或重命名)它,重启.工作得很好.不知道.suo文件中阻止正确覆盖分析的内容.