问题标签 [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 回答
487 浏览

xml - 如何解释scoverage.xml 报告

我正在使用 Scala 项目中的覆盖率。在构建期间,我生成覆盖率 HTML 和 XML 报告。我需要解析 XML 文件(即scoverage.xml)以提取每个类的指标:* 行覆盖率:覆盖的数量与总数 * 语句覆盖率:覆盖的数量与总数 * 分支覆盖率:覆盖的数量与总数 * 函数覆盖率:覆盖的数量与总数

查看 scoverage repo,我看到报告是由ScoverageXmlWriter.scala生成的,但没有记录!

因此,这是该语句的示例输出tag

属性是什么意思?是line对应文件中的行号吗?和代表start什么end

0 投票
1 回答
280 浏览

build.gradle - 如何在 Flink shadowjar 自定义 gradle 依赖配置中使用 scoverage

概括

我有一个 Gradle Flink Scala 项目并正在尝试添加 Scoverage 报告,但compileScoverageScala由于自定义影子 jar 配置,该任务无法找到所有依赖项。

构建.gradle

这是构建文件,它遵循 Flink 的 Gradle 示例。唯一的区别是我尝试添加 Scoverage。

这是构建输出:

缺少的包被声明为flinkShadowJar依赖项。该compileScala任务能够找到它,但compileScoverageScala不能。

任何人都知道是否有办法明确告诉 Scoverage 包含flinkShadowJar配置?我希望其他使用 Flink 的人之前也遇到过这个问题,并且知道如何解决它。

0 投票
0 回答
133 浏览

scala - 为 gradle 多模块项目问题设置覆盖范围

对于使用 gradle 在 Scala 上的多模块项目,模块中有集成测试,可以从该模块A调用方法X。该方法Y又从另一个模块调用方法B。我希望两者都X得到Y覆盖,但由于Y位于不同的模块中,因此显示为 0%。

有没有办法解决这个问题?聚合仅适用于报告,但不适用于原始覆盖率。我在这里看到了 maven 插件的解决方法(首先运行包),但该选项在 gradle 插件中似乎不可用。

0 投票
0 回答
332 浏览

c++ - 使用 libfuzzer.a 进行 C++ 模糊测试

我使用 libfuzzer.a 编写我的第一个模糊测试,这是我的代码

但是当我运行这段代码时,我遇到了这个问题,这是怎么回事?

你能帮助我吗?谢谢你

0 投票
1 回答
672 浏览

scala - 使用具有代码覆盖率的 Scala SBT 时出现兼容性错误

我在 Scala 中有一个项目,我正在尝试将版本从 Scala 2.12.3 升级到 2.12.13,但该过程在我的 CI 管道中失败,并出现以下堆栈跟踪:

这纯粹是一个兼容性错误,而 sbt 覆盖率是罪魁祸首。知道如何解决这个问题吗?

0 投票
0 回答
224 浏览

scala - scala 2.12.13 的 scoverage-maven-plugin 错误

我有 scala mvn 项目。scala 的版本是 2.12.3 和 scoverage-maven-plugin。1.3.0 将 scala 版本从 2.12.3 更新到 2.12.13 后出现错误

通过查看https://github.com/scoverage/sbt-scoverage/issues/321和相关提交,似乎使用 scalac-scoverage v1.4.3 可以修复它,所以我试图强制它使用不同的这样:

但我有一个新错误:

scalaVersionparam 只接受 2.10 或 2.11 或 2.13。我该如何解决这个错误?

0 投票
0 回答
22 浏览

sbt - scalac-scoverage-runtime 上的交叉版本冲突

我正在尝试在 crossBuild 上运行覆盖sbt coverage +test coverageAggregate,我得到:

据我所知,我的依赖项是 with %%,除了一个纯 java 依赖项

0 投票
1 回答
40 浏览

gradle - 在多项目构建中为多个 Gradle 项目贡献代码覆盖率

我将 gradle-scoverage 与多项目 Gradle 构建一起使用。我想利用 :projectB 的测试在 :projectA 中执行代码这一事实。但是 gradle-scoverage 7.0.0 在 :projectB 的覆盖率报告中没有显示 :projectA 中相关行的任何代码覆盖率,并且 :projectA 的覆盖率报告仅适用于该项目。

我在 GitHub 问题跟踪器中找到了一个建议的解决方案:

但它没有用。第一个问题是在执行顶层项目的 build.gradle 文件时还没有创建任务,因为 gradle-scoverage 插件是单独应用于每个 Gradle 项目的 build.gradle 文件的。

所以我尝试将该行移至 projectB 的 build.gradle 文件,并将其更改为:

但是随后依赖关系不起作用,因为虽然reportScoverage任务以期望的顺序reportTestScoverage执行,但任务以相反的顺序执行。所以我把它改成:

但随后 Gradle 再次抱怨找不到reportTestScoverage任务。

所以,按照这里的建议,我再次构建它:

project(':projectA').tasks.reportTestScoverage.dependsOn(':projectB:reportTestScoverage')

但是,虽然现在 projectB 的reportTestScoverage任务首先运行,但仍然没有显示 projectA 中相关行的代码覆盖率。我已经通过在 IntelliJ 调试器中的 projectB 中运行相关测试来验证该行是否命中。

然后我意识到我忘记添加:

到 projectB 的依赖项,如 GitHub 问题评论中所述。但是添加这个没有任何区别。

gradlew clean build每次尝试后我都会跑。

我无法使用 IntelliJ 调试 scoverage 的字节码增强,但是通过使用 jdb,我可以看到在运行 projectB 的测试时,相关行显示没有覆盖的类没有被 scoverage 检测。

0 投票
1 回答
138 浏览

scala - IntelliJ 中的 Scala 单元测试因 java.lang.NoClassDefFoundError scoverage/Invoker$ 而失败

测试在 中运行没有任何问题sbt,但是当您在IntelliJ中需要它们时,它们会失败。

这些年来,我看到很多人建议如何解决它,但没有任何帮助。:)

0 投票
0 回答
12 浏览

jenkins - jenkins 的 Scoverage 插件显示未找到某些 scala 文件的 404 错误文件,但适用于某些文件

jenkins 的 Scoverage 插件显示未找到某些 scala 文件的 404 错误文件,但适用于其他文件。模式是随机的 对于我无法直观地看到丢失覆盖率的文件(html 文件丢失,不知道为什么),相应的 Scoverage.xml 文件包含该特定文件的覆盖率数据,例如丢失的分支等。最近有没有人遇到过这个问题或者知道它是否是一个已知的错误?