Jacoco 插件不报告重命名集成测试的覆盖率 class

Jacoco plugin does not report coverage for renamed integration test class

让我向您展示以下用例的问题:

让我们假设我有 class Example 并且想为此使用单元和集成测试。 完成文件 ExampleTest 中的单元测试(使用 @Test 注释的方法)后,覆盖率报告会显示正确的结果。 完成文件 ExampleTestInt 中的集成测试(使用 @Test 注释的方法)后,覆盖率报告不会显示正确的结果。好像 class 被排除在覆盖过程之外。

这意味着如果我只有 Example class 的集成测试,那么我无法在 jacoco 的覆盖率中看到正确的结果。

有没有什么方法可以使 ExampleTestInt class 像单元测试一样被覆盖?我想保留相同的名字。

您可以像这样配置自定义排除:

<configuration>
  <excludes>
      <exclude>**/*Config.*</exclude>
      <exclude>**/*Dev.*</exclude>
  </excludes>
</configuration>

请查看 jacoco 文档:https://www.eclemma.org/jacoco/trunk/doc/report-mojo.html

我发现根本问题在于用于集成测试的文件名错误。

根据我的观察,jacoco 覆盖插件正在寻找后缀为 Test 的文件,因此插件无法看到文件 ExampleTestInt