.net - OpenCover 未涵盖实际源代码

标签 .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

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

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

最佳答案

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

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

这里的值应该是'full'。

关于.net - OpenCover 未涵盖实际源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196857/

相关文章:

c++ - gcov:从共享库生成 .gcda 输出?

c# - WPF Magellan ViewModel IOC

c# - Microsoft.Office.Interop.Word 命名空间覆盖我的系统命名空间? C# ASP.net

c# - 何时何地使用 GetType() 或 typeof()?

c# - 如何以编程方式读取 .pdf 文件并将其转换为音频(.mp3 格式)?

unit-testing - 查看在 AWS CodeBuild 中生成的单元测试和覆盖率报告

c# - 如何断言事件已被 FakeItEasy 订阅?

multithreading - NUnit 在单独的线程中断言

nunit - 通过Nuget的SpecFlow.NUnit:缺少对nunit.core的引用

android - Gradle 任务 jacoco 报告生成空的 html 报告文件(未指定类文件)