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

时间:2016-12-29 17:26:59

标签: .net-core xunit opencover

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

我尝试过的事情:

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

    的命令行
    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"
    

    任何和所有的想法都赞赏!

1 个答案:

答案 0 :(得分:7)

.NET Core默认使用“Portable PDB”格式,OpenCover无法理解yet

请尝试使用以下构建选项:

"buildOptions": {
  "debugType": "full"
},

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

更新:基于MSBuild的项目变为:

<PropertyGroup>
  <DebugType>full</DebugType>
</PropertyGroup>

而且,我们也可以使用/p:DebugType=Full开关进行构建。因此,“普通”构建可以使用默认调试设置,但覆盖分析的“特殊”构建可以将其更改为完整。