VS2019 企业代码覆盖率仅显示单元测试 DLL
VS2019 Enterprise Code Coverage showing only Unit Test DLLs
我用 .Net Core exe 项目创建了一个新的解决方案。我也添加了一个 MSTest v2 项目。
我 运行 分析所有测试的代码覆盖率,但我只收到测试项目的覆盖率数据,而不是主要的 .Net Core 项目。
然后我添加了一个.Net Core dll,还是没有成功。
然后我添加了.Net Framework exe 和.Net Framework dll。我重建了一个解决方案和 运行 代码覆盖率,但结果中仍然只出现 MSTest V2 项目。
然后我添加了一个 Nunit 项目。这次结果显示 MSTest v2 和 Nunit 项目,但是要测试的项目的 none。
我也尝试添加 [ExcludeFromCodeCoverage]。我试图启用自动检测 运行 设置文件。没有任何帮助。
我也试过将这段代码添加到主项目中:
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugType>Full</DebugType>
</PropertyGroup>
没有效果。
我了解到,如果我添加自定义 运行 设置文件,事情可能会开始起作用。但是,我认为这只是一种解决方法,因为当我要求 运行 我同事 Visual Studio 的代码覆盖率时,所有项目都会出现在结果中。
寻找解决方案。
好的,解决方案简单而愚蠢,但对于没有经验的单元测试人员来说,仍然可能会花费大量时间。
问题是仅仅添加一个测试项目并从中添加对主项目的引用是不够的。即使有一个不测试主项目中任何内容的测试 class 也不起作用。
真正的解决方案只是添加一个 class 来测试主项目中的至少一种方法。
这样代码覆盖将被激活并显示结果,表明您已经覆盖了一种方法。因此,似乎不可能在覆盖结果中有一个主项目表明该项目的 0% 已被覆盖。您将始终需要至少有最小的覆盖范围。
我用 .Net Core exe 项目创建了一个新的解决方案。我也添加了一个 MSTest v2 项目。 我 运行 分析所有测试的代码覆盖率,但我只收到测试项目的覆盖率数据,而不是主要的 .Net Core 项目。
然后我添加了一个.Net Core dll,还是没有成功。 然后我添加了.Net Framework exe 和.Net Framework dll。我重建了一个解决方案和 运行 代码覆盖率,但结果中仍然只出现 MSTest V2 项目。 然后我添加了一个 Nunit 项目。这次结果显示 MSTest v2 和 Nunit 项目,但是要测试的项目的 none。
我也尝试添加 [ExcludeFromCodeCoverage]。我试图启用自动检测 运行 设置文件。没有任何帮助。
我也试过将这段代码添加到主项目中:
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugType>Full</DebugType>
</PropertyGroup>
没有效果。
我了解到,如果我添加自定义 运行 设置文件,事情可能会开始起作用。但是,我认为这只是一种解决方法,因为当我要求 运行 我同事 Visual Studio 的代码覆盖率时,所有项目都会出现在结果中。
寻找解决方案。
好的,解决方案简单而愚蠢,但对于没有经验的单元测试人员来说,仍然可能会花费大量时间。 问题是仅仅添加一个测试项目并从中添加对主项目的引用是不够的。即使有一个不测试主项目中任何内容的测试 class 也不起作用。 真正的解决方案只是添加一个 class 来测试主项目中的至少一种方法。 这样代码覆盖将被激活并显示结果,表明您已经覆盖了一种方法。因此,似乎不可能在覆盖结果中有一个主项目表明该项目的 0% 已被覆盖。您将始终需要至少有最小的覆盖范围。