问题标签 [scoverage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1795 浏览

jenkins - 如何在单个 jenkins 作业中使用 maven 生成 jacoco 和 scoverage 报告

我有一个带有 java 和 scala 的多模块项目。jacoco 和 scoverage 插件都安装在 Jenkins 中,我想在 Jenkins 的单个构建作业中生成 jacoco 和 scoverage 报告(两者),但只生成一个报告,要么是 jacoco,要么是 scoverage。

到目前为止尝试过的 mvn 命令下面 -

mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install scoverage:report jacoco:report

我的 pom 文件的片段 -

当我使用 - mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install scoverage:report jacoco:report

生成 jacoco 报告

构建日志 -

05:30:51 [编译] [INFO] --- scoverage-maven-plugin:1.3.0:report (default-cli) @ ABC --- 05:30:51 [编译] [INFO] 读取 scoverage 工具 [ /workspace/Build-Pipeline/ABC/target/scoverage-data/scoverage.coverage.xml]... 05:30:51 [编译] [INFO] 读取覆盖测量值 [/workspace/Build-Pipeline/ABC/target/ scoverage-data/scoverage.measurements.*]... 05:30:51 [编译] [INFO] 生成覆盖率报告... 05:30:51 [编译] [INFO] 书面 Cobertura XML 报告 [/workspace/Build -Pipeline/ABC/target/cobertura.xml] 05:30:52 [编译] [INFO] 书面 XML 覆盖率报告 [/workspace/Build-Pipeline/ABC/target/scoverage.xml] 05:30:53 [编译] [INFO] 书面 HTML 覆盖率报告 [/workspace/Build-Pipeline/ABC/target/site/scoverage/index.html] 05:30:53 [编译] [INFO] 语句覆盖率。:0.00% 05:30:53 [编译] [INFO] 分支覆盖率....:0.00% 05:30:53 [编译] [INFO] 覆盖率报告已完成。

当我使用 -

mvn -B -s $MVN_SETTINGS jacoco:prepare-agent install jacoco:report scoverage:report

生成覆盖率报告

构建日志 -

05:15:07 [编译] [INFO] --- scoverage-maven-plugin:1.3.0:report (default-cli) @ ABC --- 05:15:07 [编译] [INFO] 读取 scoverage 工具 [ /workspace/Build-Pipeline/ABC/target/scoverage-data/scoverage.coverage.xml]... 05:15:07 [编译] [INFO] 读取覆盖测量值 [/workspace/Build-Pipeline/ABC/target/ scoverage-data/scoverage.measurements.*]... 05:15:07 [编译] [INFO] 生成覆盖率报告... 05:15:07 [编译] [INFO] 书面 Cobertura XML 报告 [/workspace/Build -Pipeline/ABC/target/cobertura.xml] 05:15:08 [编译] [INFO] 书面 XML 覆盖率报告 [/workspace/Build-Pipeline/ABC/target/scoverage.xml] 05:15:08 [编译] [INFO] 书面 HTML 覆盖率报告 [/workspace/Build-Pipeline/ABC/target/site/scoverage/index.html] 05:15:08 [编译] [INFO] 语句覆盖率。:0.00% 05:15:08 [编译] [INFO] 分支覆盖率....:0.00% 05:15:08 [编译] [INFO] 覆盖率报告已完成。

有人可以指出我出了什么问题吗?

非常感谢

0 投票
2 回答
1076 浏览

scala - scoverage: Combine Coverage from test and it:test

I splitted my Unit- and Integration-Tests with a Filter:

So I can do something like that:

sbt clean coverage test dockerComposeUp it:test dockerComposeStop coverageReport

Sadly that kills all my Coverage, only the generated BuildInfo has a Coverage.

Using only sbt clean coverage test coverageReport or sbt clean coverage it:test coverageReport work as expected.

The whole project can be found here: https://github.com/pme123/play-binding-form

scoverage Version: 1.5.1

0 投票
1 回答
134 浏览

scala - 设置覆盖标准

有没有办法在运行覆盖时设置测试覆盖标准?现在我执行通常的以下命令:

这样我得到了结果,但想硬编码一个标准;例如 50% 的语句覆盖率或 70% 的分支覆盖率。

0 投票
1 回答
2201 浏览

scala - 如何让 Gradle、Scoverage 和 Sonarqube 正常工作?

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

我的“你好,世界!” 对于这个问题位于此处

我正在运行以下命令:

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

截图 1

那里有明确的代码覆盖率数字。

所以,然后我运行sonar-scanner以将信息发送到 Sonarqube:

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

在下图中,没有代码覆盖率数字(在上述 Sonarqube 的任一版本中)。

无代码覆盖

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

我做错了什么,为什么没有任何代码覆盖率?这仅支持 SBT 吗?我没有调用正确的 Gradle 目标吗?我缺少参数吗?

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

有效的 Coverage 部分是什么样的

有人可以解释一下吗?很长一段时间以来,我一直在努力做到这一点。如果它是一个错误或未完成的功能,那么找出这一点也会有所帮助。如果它仅在 SBT 中受支持,那么很高兴知道。

无论哪种方式,我都非常感谢您的帮助!谢谢!

0 投票
1 回答
653 浏览

scala - 如果测试覆盖率未达到最低阈值,如何中断构建?

如果测试覆盖率低于阈值,我们希望代码架构的构建失败。但这并没有使构建失败。

覆盖插件:

在 build.sbt 中添加了以下两个语句

如果测试覆盖率低于 80,即使在本地也不会失败。我运行的命令是

0 投票
1 回答
414 浏览

scala - 使用 Nexus 代理的 Scala sbt 覆盖插件解析

我在我的项目中使用了 scoverage 插件project/plugins.sbt

当我不使用我们公司的联系时,这可以很好地解决。

为了测试我们的关系代理,我在下面添加了~./sbt/repositories

~./ivy2/cache当我尝试编译时,我删除了和:

我注意到 sbt 覆盖有一个目录结构,其中包括 scala 和 sbt 版本:https://repo1.maven.org/maven2/org/scoverage/sbt-scoverage_2.12_1.0/1.5.1/sbt-scoverage-1.5.1.pom

我也尝试更改project/plugins.sbt无济于事:

我的 maven 代理没有从 maven Central 下载这个插件有什么原因吗(尽管它显然存在)

注意:代理解析适用于 ivy 风格版本和其他 maven 版本。

编辑:注意 I:不使用代理(直接来自 maven Central)的工件解析效果很好。这就是我得出的结论,代理配置中一定缺少某些东西。任何/所有指针都会有所帮助。注二:其他工件的解析(包括 sbt-assembly 插件、sbt 本身、scala-reflect 等与我的代理完美配合)

0 投票
2 回答
272 浏览

scala - Scala/scoverage:是否有必要进行干净的重建以发布 jar 以进行发布?

我使用 scoverage 报告我的 scala 代码库的覆盖率信息。我对 Java 堆栈有点陌生,但我曾在覆盖构建与发布构建不同的环境中工作(通过在编译的工件中引入额外的信息)并且随后的清理和重建步骤是必要的。

现在我不确定 scoverage scala 项目的情况如何。

所以:我应该在 CI 服务器上mvn scoverage:report运行mvn clean之前的命令吗?mvn package

0 投票
1 回答
121 浏览

scala - 如何将 SBT 任务与多模块项目链接

我已经用scoverage插件配置了一个 SBT 多模块项目,它工作正常。

为了生成测试覆盖率,我正在使用> SBT clean coverage test coverageReport但有什么方法可以创建一个内部链接的新任务coverage test coverageReport

我已经尝试 在标准任务之前/之后自动运行自定义任务来创建自定义任务,但它似乎不适用于多模块项目。

还有一个 - http://eed3si9n.com/sequencing-tasks-with-sbt-sequential

0 投票
1 回答
239 浏览

scala - 关于 Jenkins 的空白覆盖率 HTML 报告

我正在使用 Scoverage 进行 Scala 项目的覆盖率报告。XML 报告已正确生成,但 HTML 版本看起来像这样为空白

在此处输入图像描述

我正在使用 scalatest 版本“3.1.1”和最新的覆盖插件版本

这个问题似乎在 Jenkins 插件中存在了很长时间,请参阅问题,但最近没有任何活动/修复。

什么是替代选择?改用 JaCoCo 会有帮助吗?

0 投票
0 回答
211 浏览

scala - 如何使用 sbt scoverage 生成 cobertura 报告

我有一个 scala 应用程序,我在其中使用 sbt scoverage 插件生成覆盖率报告。现在的问题是我使用 Jenkins 进行 CI 并且生成的 HTML 覆盖率报告无法可视化,这是一个已知问题

或者,我如何生成与 cobertura 兼容的报告?(因为我能够在 Jenkins 中为 JS 应用程序可视化它们)