当存在pdbs时,OpenCover报告缺少pdbs(XUnit/.NET Core)

Ric*_*son 5 xunit opencover .net-core

我正在使用OpenCover为我的项目生成测试覆盖率报告,但它不会生成任何数据.检查我的日志,它显示有关dll的"缺少pdb",但是pdbs在同一目录中可用.

我试过的事情:

  1. 我已经尝试使用-searchdirs选项明确地添加带有pdbs的目录 - 没有区别.
  2. 我已经检查过,看起来XUnit没有对dll进行阴影复制,所以从正确的目录中访问它们.opencover results.xml支持我.

我正在使用命令行

opencover.console -oldstyle -register:user 
                  -target:"C:\Program Files\Dotnet\dotnet.exe" 
                  -targetargs:"test" 
                  -searchdirs:"C:\dev\public\hermes-c#\Hermes.Server\Hermes.AspNetCore.Test\bin\Debug\netcoreapp1.0"
Run Code Online (Sandbox Code Playgroud)

任何和所有的想法赞赏!

Axe*_*eer 8

.NET核心默认使用"便携式PDB"格式,其中OpenCover不明白.

请尝试以下构建选项:

"buildOptions": {
  "debugType": "full"
},
Run Code Online (Sandbox Code Playgroud)

注意:使用full生成的调试符号时仅适用于Windows ...

更新:使用基于MSBuild的项目,这将成为:

<PropertyGroup>
  <DebugType>full</DebugType>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

而且,我们也可以使用/p:DebugType=Full交换机构建.因此,"普通"构建可以使用默认调试设置,但覆盖分析的"特殊"构建可以将其更改为完整.