OpenCover 没有覆盖实际的源代码

Sal*_*oga 3 .net nunit code-coverage opencover

我正在尝试使用 open cover 为我的项目生成代码覆盖率报告,但它只涵盖测试类,而不是我想要的源代码。我正在使用以下命令来运行我的测试:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -register:user -target:"$nunit_path\nunit-console.exe" -targetargs:"$project_path\Project.Test\Project.Test.dll -noshadow"  -mergebyhash -output:C:\Reports\NUnit\projectCoverageReport.xml
Run Code Online (Sandbox Code Playgroud)

$nunit_path 和 $project_path 只是我文件的路径,我跳过它们以使命令更清晰。

当我运行这个命令时,我得到了测试类的完整覆盖(在 Project.Test.dll 程序集中),但没有其他任何东西。我如何让 OpenCover 也考虑源代码?

sat*_*esh 5

此问题的一个可能原因是为该特定项目配置 pdb 文件的方式。OpenCover 期望 pdb 文件处于“完整”形式而不是“可移植”形式。默认情况下,visual studio 将 pdb 文件标记为“可移植”。您可以通过执行以下操作来检查这一点..

右键单击项目 -> 属性 -> 构建 -> 输出 -> 高级 -> 调试信息

这里的值应该是'full'。