java - gradle-clover-plugin 从单独的模块获取代码覆盖率
问题描述
我的任务是拆分一个 Spring Boot 应用程序以使多个模块看起来像这样:
- 根
- 应用程序
- 构建.gradle
- 休息
- 构建.gradle
- 服务
- 构建.gradle
- 道
- 构建.gradle
- 模型
- 构建.gradle
- 构建.gradle
- 设置.gradle
- 应用程序
注意:项目根目录下没有代码文件夹。每个模块都有自己的src
根
在将代码拆分为模块之前,gradle-clover-plugin 显示我们有 95% 的代码覆盖率,但由于现在组织测试的方式,插件无法看到正在测试的某些代码在其他模块
例如,在测试控制器时service
,正在从rest
模块中测试一些 Class 方法。
查看插件的文档(https://github.com/bmuschko/gradle-clover-plugin/blob/master/README.md),他们提到在页面底部指定和additionalSourceSets
,但不清楚对我来说如何在我的项目中使用它们additionalTestSourceSets
example
我将示例中的以下块添加到我的根目录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 容器获取未知属性“生成代码”。
然后我尝试用根目录中的模块名称换出generateCode和integrationTestbuild.gradle
但得到了同样的异常
最后,我尝试在模块的 build.gradle 中指定这些属性,但遇到以下异常: 无法为 com.bmuschko.gradle.clover.CloverPluginConvention 类型的对象的参数找到方法 AdditionalSourceSets()
在为不同的模块生成代码覆盖率报告时,是否确实可以为插件指定另一个模块的源来考虑?
解决方案
推荐阅读
- css - Chrome 控制台抽屉中的“更改”选项卡中没有 CSS 更改
- android - Android报警管理器同时设置多个问题
- typescript - 具有无点函数的泛型类型
- raspberry-pi - 有没有人设法在树莓派上运行scrapy-splash?
- jquery - 菜单关闭时不起作用的转换延迟
- django - 如何在 Django 中为自定义用户创建组?
- java - Stream 迭代 hashMap 并处理数据
- gatsby - 使用 GatsbyJs 和 Cloudflare Workers 从 Contentful 中自动提取博客文章
- javascript - 使用 Ajax 结果更新选择选项元素
- java - C# HttpUtility.UrlEncode 与 Java URLEncoder.encode 不一致