问题标签 [maven-cobertura-plugin]

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 回答
2215 浏览

scala - 为什么 Scalatest、Maven 和 cobertura 的代码覆盖率为零?

我试图让 Cobertura 使用 Maven 和 Scala 处理一个非常简单的示例项目。这是我的pom:

编辑:同时,我发现这个 pom 相当糟糕。如果您正在寻找更好的示例,请参阅已接受答案中的示例。

我禁用了surefire,启用了Scalatest,测试确实被执行了。

我将 Maven Cobertura 插件添加到 pom 的构建和报告部分。当我跑

我确实收到了一份覆盖率报告——它指出没有任何内容被覆盖,覆盖率为 0%。

现在我尝试了各种事情:我尝试了执行部分,我将东西从构建部分移到了报告部分,反之亦然,我尝试了不同的 Maven 目标。这一切都是徒劳的——要么没有创建报告,要么声明覆盖率为 0%。

我什至尝试过Scoverage!但结果相似。

所以我想我犯了一些非常基本的错误。有人可以指出我吗?

0 投票
2 回答
4326 浏览

java - cobertura 解析错误(cobertura.javancss.parser.ParseException)

我对部署和代码覆盖率问题相当陌生,现在我遇到了问题,我的应用程序使用 cobertura maven 插件 2.7 和covertura 2.1.1 版和 java 8。在 cobertura 报告中运行我的部署时出现错误

收到一些建议会很棒,因为这是应用程序的障碍,谢谢

0 投票
2 回答
1119 浏览

java - Jenkins 上的 Cobertura 重复测试运行

我有一个包含 cobertura 作为我的 Jenkins 运行的一部分的构建。但是,我现在意识到它正在运行我所有的测试两次。

我将项目设置为 Jenkins 中的 Maven 项目。我的目标是:clean coberture:cobertura install

我曾认为该install命令的一部分将简单地运行安装目标的其余部分,例如 package.json 。但是,它会重新运行编译和所有测试。尽管那里已经进行了测试。

我尝试配置预构建和构建后步骤的不同组合,但我一直遇到问题。在某些组合中,构建工件(例如 jars)永远不会在 Jenkins 上发布。在其他情况下,缺少测试结果。

我认为也许我需要将构建重新制作为外壳构建。我想我可以运行以下命令:mvn clean cobertura:cobertura && mvn install -Dmaven.test.skip=true

我认为这会做我想要的。它至少会停止运行所有测试两次。

这是最好的方法还是有其他方法?

这就是我在 POM 中包含 Cobertura 的方式:

0 投票
2 回答
1211 浏览

java - 使用 Cobertura 时如何忽略与 Logger 相关的 If 条件?

我正在尝试使用 Cobertura 增加 JUnit 测试用例覆盖率。

代码中有相当多的Logger,还有If条件来检查Info或者Debug是否开启。前任:

现在显然,这将没有其他部分。上面的代码将有 50% 的分支覆盖率。我如何做到这一点 100%?

我尝试忽略仪器中的 Logger 调用:

但这只是将覆盖率降低到 0%。

有解决方法吗?

任何帮助,将不胜感激。

0 投票
2 回答
443 浏览

java - Cobertura 检查 Travis CI 失败

在我的 Maven 构建中,我使用 Cobertura 来检查是否存在一定的最小覆盖范围:

运行时mvn install,这工作正常。但是,在 Travis CI 中,构建失败是因为 Travis首先运行 mvn install -DskipTests=true以获取依赖项。显然,当测试被跳过时,没有覆盖,因此整个构建失败:

我可以以某种方式配置 Cobertura 以跳过检查是否跳过测试?或者还有其他解决方案,也许是在特拉维斯方面?


这是我的.travis.yml文件:

0 投票
1 回答
582 浏览

maven - Maven 目标做 cobertura 分析和安装

我正在使用JenkinsMaven构建一些 Java 项目。此外,我正在使用Cobertura覆盖率分析。因此,我设置了 Jenkins Maven 构建作业并配置了以下目标:

这对于覆盖率分析工作正常,但不会生成在 POM 中配置的任何 jar 输出。我认为是这样,因为 Maven 目标package不在Cobertura 生命周期中。

为了获取 jar 文件,我尝试将其更改为

这可以完成工作,但还有另一个问题:从resourcesto的每个目标test都执行两次 :( 控制台输出看起来像(删除了详细信息行)

有没有办法使用install从阶段resourcestest从的结果cobertura

换句话说,像这样的输出

附加信息:更改 POM 不是一种选择,因为它们不是由我管理的。

0 投票
1 回答
667 浏览

java - Cobertura 生成不正确的代码覆盖率

我有一个使用 maven 配置的庞大代码库。我的代码库分为不同的 Maven 模块,因此我有一个主 pom 文件,每个子模块都有自己的 pom 文件。但是这些模块仍然调用彼此的功能。为每个模块编写 Junit 测试。我正在使用 Cobertura 生成代码覆盖率。它为每个模块生成单独的覆盖率报告。当 Cobertura 为模块 A 生成代码覆盖率并且来自模块 A 的特定代码被来自模块 B 的测试调用时。在这种情况下,Cobertura 将模块 A 中的代码标记为未覆盖。这是预期的行为吗?还是我配置错误?

Maven - 子模块中的 Cobertura 配置:

构建部分:

报告部分:

运行 Cobertura 报告的命令:

0 投票
1 回答
155 浏览

cobertura - 如何使用 Cobertura maven 插件,使字节码不被改变?

我最近尝试为我们的项目包含 cobertura 插件。但我遇到了一个奇怪的问题。现在,如果我尝试这样做:

mvn clean package cobertura:check-integration-test

我的项目组装得很好。但是在这里部署之后是我得到的消息:

java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/LightClassmapListener

据我了解,发生这种情况是因为 cobertura 改变了我的类的字节码。那么,我应该如何进行检查和构建代码呢?现在,我为 teamcity 提出了以下解决方案:

第一步运行 cobertura:

mvn clean package cobertura:check-integration-test

在第二步之后运行正常的程序集:

mvn clean package

这似乎可行,但似乎有点奇怪,我必须运行两次打包过程(这需要双倍时间),只是为了使用不受 cobertura 插件影响的字节码进行干净的构建。

0 投票
1 回答
1595 浏览

java - cobertura maven插件是否不适用于接口中的java8默认方法声明?

我已经用 java8 默认方法声明声明了我的接口:

接下来,我执行了 Maven 目标:

日志显示错误,因为 cobertura 不支持 java8 默认方法声明:

我该如何解决?

0 投票
2 回答
11636 浏览

maven-3 - 代码覆盖率:Cobertura 和 SonarQube 5.3 Maven 集成

作为持续集成的一部分,我们正在将所有项目从 ANT 迁移到 MAVEN。我们正在将 JaCoCo 用于新项目以测量代码覆盖率并与 SonarQube 成功集成。

我们现有的 ANT 项目很少使用 Cobertura。在将其迁移到 Maven 时,我收到以下异常

例外

pom.xml

专家,我这里有什么遗漏吗?