首页 > 解决方案 > VS2019 企业代码覆盖率仅显示单元测试 DLL

问题描述

我使用 .Net Core exe 项目创建了一个全新的解决方案。我也添加了一个 MSTest v2 项目。我为所有测试运行了分析代码覆盖率,但我只收到了测试项目的覆盖率数据,而不是主要的 .Net Core 项目。

然后我添加了一个.Net Core dll,仍然没有成功。然后我添加了 .Net Framework exe 和 .Net Framework dll。我重建了一个解决方案并运行了代码覆盖率,但结果中仍然只出现了 MSTest V2 项目。然后我添加了一个 Nunit 项目。这次结果显示 MSTest v2 和 Nunit 项目,但没有要测试的项目。

我还尝试添加 [ExcludeFromCodeCoverage]。我试图启用自动检测运行设置文件。没有任何帮助。

我还尝试将此代码添加到主项目:

<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
  <DebugType>Full</DebugType>
</PropertyGroup>

没有效果。

我读到如果我添加一个自定义运行设置文件,事情可能会开始工作。但是,我认为这只是一种解决方法,因为当我要求在同事的 Visual Studio 上运行 Code Coverage 时,所有项目都会出现在结果中。

寻找解决方案。

标签: c#unit-testingcode-coveragevisual-studio-2019

解决方案


好的,解决方案既简单又愚蠢,但对于没有经验的单元测试人员来说仍然可能会花费大量时间。问题是仅仅添加一个测试项目并将其引用添加到主项目是不够的。甚至在主项目中没有测试任何东西的测试类也不起作用。真正的解决方案只是在主项目中添加一个测试至少一个方法的类。这样,代码覆盖率将被激活并显示结果,表明您已经覆盖了一种方法。因此,在覆盖率结果中似乎不可能有一个主要项目说明项目的 0% 被覆盖。您将始终需要至少有最小的覆盖范围。


推荐阅读