首页 > 解决方案 > gradle-clover-plugin 从单独的模块获取代码覆盖率

问题描述

我的任务是拆分一个 Spring Boot 应用程序以使多个模块看起来像这样:

注意:项目根目录下没有代码文件夹。每个模块都有自己的src

在将代码拆分为模块之前,gradle-clover-plugin 显示我们有 95% 的代码覆盖率,但由于现在组织测试的方式,插件无法看到正在测试的某些代码在其他模块

例如,在测试控制器时service,正在从rest模块中测试一些 Class 方法。

查看插件的文档(https://github.com/bmuschko/gradle-clover-plugin/blob/master/README.md),他们提到在页面底部指定和additionalSourceSets,但不清楚对我来说如何在我的项目中使用它们additionalTestSourceSetsexample

我将示例中的以下块添加到我的根目录build.gradle

    additionalSourceSet {
        srcDirs = sourceSets.generatedCode.java.srcDirs
        classesDir = sourceSets.generatedCode.java.outputDir
    }
    additionalTestSourceSet {
        srcDirs = sourceSets.integrationTest.java.srcDirs
        classesDir = sourceSets.integrationTest.java.outputDir
    }

但出现以下异常:无法为 org.gradle.api.internal.tasks.DefaultSourceSetContainer 类型的 SourceSet 容器获取未知属性“生成代码”。

然后我尝试用根目录中的模块名称换出generateCodeintegrationTestbuild.gradle但得到了同样的异常

最后,我尝试在模块的 build.gradle 中指定这些属性,但遇到以下异常: 无法为 com.bmuschko.gradle.clover.CloverPluginConvention 类型的对象的参数找到方法 AdditionalSourceSets()

在为不同的模块生成代码覆盖率报告时,是否确实可以为插件指定另一个模块的源来考虑?

标签: javaspring-bootgradleclover

解决方案


推荐阅读