首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Gradle,Scoverage和Sonarqube正常工作?

如何让Gradle,Scoverage和Sonarqube正常工作?
EN

Stack Overflow用户
提问于 2019-02-24 03:53:23
回答 1查看 2.6K关注 0票数 4

我有一个多模块的Gradle构建,编译Scala代码。我想扫描代码,收集代码覆盖率,并将结果输入Sonarqube。

我的“你好,世界!”对于这个问题,定位为这里

我正在运行以下命令:

代码语言:javascript
复制
$ ./gradlew clean build reportScoverage aggregateScoverage
Starting a Gradle Daemon (subsequent builds will be faster)

> Task :a:compileScala
Pruning sources from previous analysis, due to incompatible CompileSetup.

> Task :a:compileTestScala
Pruning sources from previous analysis, due to incompatible CompileSetup.

> Task :b:compileScala
Pruning sources from previous analysis, due to incompatible CompileSetup.

> Task :b:compileTestScala
Pruning sources from previous analysis, due to incompatible CompileSetup.

> Task :a:compileScoverageScala
Pruning sources from previous analysis, due to incompatible CompileSetup.

> Task :a:reportScoverage
[scoverage] Generating scoverage reports...
[scoverage] Written Cobertura XML report to /java/opensource/gradle/gradle-scoverage-multi-module/a/build/reports/scoverage/cobertura.xml
[scoverage] Written XML report to /java/opensource/gradle/gradle-scoverage-multi-module/a/build/reports/scoverage/scoverage.xml
[scoverage] Written HTML report to /java/opensource/gradle/gradle-scoverage-multi-module/a/build/reports/scoverage/index.html
[scoverage] Coverage reports completed

> Task :b:compileScoverageScala
Pruning sources from previous analysis, due to incompatible CompileSetup.

> Task :b:reportScoverage
[scoverage] Generating scoverage reports...
[scoverage] Written Cobertura XML report to /java/opensource/gradle/gradle-scoverage-multi-module/b/build/reports/scoverage/cobertura.xml
[scoverage] Written XML report to /java/opensource/gradle/gradle-scoverage-multi-module/b/build/reports/scoverage/scoverage.xml
[scoverage] Written HTML report to /java/opensource/gradle/gradle-scoverage-multi-module/b/build/reports/scoverage/index.html
[scoverage] Coverage reports completed

> Task :aggregateScoverage
[info] Found 2 subproject report files [/java/opensource/gradle/gradle-scoverage-multi-module/a/build/reports/scoverage/scoverage.xml,/java/opensource/gradle/gradle-scoverage-multi-module/b/build/reports/scoverage/scoverage.xml]
[scoverage] Generating scoverage reports...
[scoverage] Written Cobertura XML report to /java/opensource/gradle/gradle-scoverage-multi-module/build/scoverage-aggregate/cobertura.xml
[scoverage] Written XML report to /java/opensource/gradle/gradle-scoverage-multi-module/build/scoverage-aggregate/scoverage.xml
[scoverage] Written HTML report to /java/opensource/gradle/gradle-scoverage-multi-module/build/scoverage-aggregate/index.html
[scoverage] Coverage reports completed

BUILD SUCCESSFUL in 13s
21 actionable tasks: 21 executed

当我打开/java/opensource/gradle/gradle-scoverage-multi-module/build/scoverage-aggregate/index.html时,我可以看到:

里面有明显的代码覆盖号。

因此,我运行sonar-scanner以便将信息发送给Sonarqube:

代码语言:javascript
复制
$ sonar-scanner -Dsonar.projectName=multi-module \
                -Dsonar.projectKey=multi-module \
                -Dsonar.projectVersion=1.0-SNAPSHOT \
                -Dsonar.sources=src/main/scala \
                -Dsonar.modules=a,b \
                -Dsonar.sourceEncoding=UTF-8 \
                -Dsonar.scala.version=2.11 \
                -Dsonar.scala.scoverage.reportPath=build/scoverage-aggregate/scoverage.xml \
                -Dsonar.host.url=http://localhost:80/

在上面的示例中,我是针对来自https://github.com/mwz/sonar-scala-docker的默认Docker映像运行它的,但我也尝试过在Sonarqube 6.7.6的本地安装中使用sonar-scala_2.12-6.7.0-assembly.jar和Sonar 7.4sonar-scala_2.12-7.3.1-assembly.jar

在下面的图片中,没有代码覆盖号(在上面提到的Sonarqubes的任何一个版本中)。

不过,我有有效的报告代码问题(正如预期的那样)。

我做错了什么,为什么没有代码覆盖号?这只支持SBT吗?我不是在召唤正确的目标吗?我缺少参数了吗?

正如您可以在声呐-scala的Sonarqube实例中看到的那样,显然有一个“覆盖率”部分显示了一些值(我没有得到):

谁能帮我弄清楚这件事吗?很长一段时间以来,我一直在努力把这件事做好。如果它是一个bug,或者是未完成的特性,那么找到它也是有帮助的。如果它只在SBT中得到支持,那么很高兴知道。

不管怎样,我真的很感激你的帮助!谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-21 18:58:35

要回答我的问题,有两件事:

  • 现在,sonar-scala项目中有针对单个和多模块项目的示例,这里
  • 如果在Windows下执行构建,由于声纳-scala的开放问题(64#65),代码覆盖率将无法工作。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54848573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档