存在 pdb 时 OpenCover 报告缺少 pdb (XUnit/.NET Core)
OpenCover Reports missing pdbs when pdbs are present (XUnit/.NET Core)
我正在使用 OpenCover 为我的项目生成测试覆盖率报告,但它没有生成任何数据。检查我的日志,显示有问题的 dll "missing pdb",但是 pdb 在同一目录中可用。
我尝试过的事情:
- 我已经尝试使用 -searchdirs 选项显式添加带有 pdb 的目录 - 没有区别。
- 我已经检查过,看起来 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"
感谢所有想法!
.NET Core 默认使用 "Portable PDB" 格式,OpenCover 不理解 yet.
尝试使用以下构建选项:
"buildOptions": {
"debugType": "full"
},
注意: 使用 full
时生成的调试符号仅适用于 Windows...
更新: 对于基于 MSBuild 的项目,这将变为:
<PropertyGroup>
<DebugType>full</DebugType>
</PropertyGroup>
而且,我们也可以使用 /p:DebugType=Full
开关进行构建。因此,"ordinary" 构建可以使用默认调试设置,但是用于覆盖分析的 "special" 构建可以将其更改为完整。
我正在使用 OpenCover 为我的项目生成测试覆盖率报告,但它没有生成任何数据。检查我的日志,显示有问题的 dll "missing pdb",但是 pdb 在同一目录中可用。
我尝试过的事情:
- 我已经尝试使用 -searchdirs 选项显式添加带有 pdb 的目录 - 没有区别。
- 我已经检查过,看起来 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"
感谢所有想法!
.NET Core 默认使用 "Portable PDB" 格式,OpenCover 不理解 yet.
尝试使用以下构建选项:
"buildOptions": {
"debugType": "full"
},
注意: 使用 full
时生成的调试符号仅适用于 Windows...
更新: 对于基于 MSBuild 的项目,这将变为:
<PropertyGroup>
<DebugType>full</DebugType>
</PropertyGroup>
而且,我们也可以使用 /p:DebugType=Full
开关进行构建。因此,"ordinary" 构建可以使用默认调试设置,但是用于覆盖分析的 "special" 构建可以将其更改为完整。