问题标签 [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.
scala - 为什么 Scalatest、Maven 和 cobertura 的代码覆盖率为零?
我试图让 Cobertura 使用 Maven 和 Scala 处理一个非常简单的示例项目。这是我的pom:
编辑:同时,我发现这个 pom 相当糟糕。如果您正在寻找更好的示例,请参阅已接受答案中的示例。
我禁用了surefire,启用了Scalatest,测试确实被执行了。
我将 Maven Cobertura 插件添加到 pom 的构建和报告部分。当我跑
我确实收到了一份覆盖率报告——它指出没有任何内容被覆盖,覆盖率为 0%。
现在我尝试了各种事情:我尝试了执行部分,我将东西从构建部分移到了报告部分,反之亦然,我尝试了不同的 Maven 目标。这一切都是徒劳的——要么没有创建报告,要么声明覆盖率为 0%。
我什至尝试过Scoverage!但结果相似。
所以我想我犯了一些非常基本的错误。有人可以指出我吗?
java - cobertura 解析错误(cobertura.javancss.parser.ParseException)
我对部署和代码覆盖率问题相当陌生,现在我遇到了问题,我的应用程序使用 cobertura maven 插件 2.7 和covertura 2.1.1 版和 java 8。在 cobertura 报告中运行我的部署时出现错误
收到一些建议会很棒,因为这是应用程序的障碍,谢谢
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 的方式:
java - 使用 Cobertura 时如何忽略与 Logger 相关的 If 条件?
我正在尝试使用 Cobertura 增加 JUnit 测试用例覆盖率。
代码中有相当多的Logger,还有If条件来检查Info或者Debug是否开启。前任:
现在显然,这将没有其他部分。上面的代码将有 50% 的分支覆盖率。我如何做到这一点 100%?
我尝试忽略仪器中的 Logger 调用:
但这只是将覆盖率降低到 0%。
有解决方法吗?
任何帮助,将不胜感激。
java - Cobertura 检查 Travis CI 失败
在我的 Maven 构建中,我使用 Cobertura 来检查是否存在一定的最小覆盖范围:
运行时mvn install
,这工作正常。但是,在 Travis CI 中,构建失败是因为 Travis首先运行 mvn install -DskipTests=true
以获取依赖项。显然,当测试被跳过时,没有覆盖,因此整个构建失败:
我可以以某种方式配置 Cobertura 以跳过检查是否跳过测试?或者还有其他解决方案,也许是在特拉维斯方面?
这是我的.travis.yml
文件:
maven - Maven 目标做 cobertura 分析和安装
我正在使用Jenkins
并Maven
构建一些 Java 项目。此外,我正在使用Cobertura
覆盖率分析。因此,我设置了 Jenkins Maven 构建作业并配置了以下目标:
这对于覆盖率分析工作正常,但不会生成在 POM 中配置的任何 jar 输出。我认为是这样,因为 Maven 目标package
不在Cobertura 生命周期中。
为了获取 jar 文件,我尝试将其更改为
这可以完成工作,但还有另一个问题:从resources
to的每个目标test
都执行两次 :( 控制台输出看起来像(删除了详细信息行)
有没有办法使用install
从阶段resources
到test
从的结果cobertura
?
换句话说,像这样的输出
附加信息:更改 POM 不是一种选择,因为它们不是由我管理的。
java - Cobertura 生成不正确的代码覆盖率
我有一个使用 maven 配置的庞大代码库。我的代码库分为不同的 Maven 模块,因此我有一个主 pom 文件,每个子模块都有自己的 pom 文件。但是这些模块仍然调用彼此的功能。为每个模块编写 Junit 测试。我正在使用 Cobertura 生成代码覆盖率。它为每个模块生成单独的覆盖率报告。当 Cobertura 为模块 A 生成代码覆盖率并且来自模块 A 的特定代码被来自模块 B 的测试调用时。在这种情况下,Cobertura 将模块 A 中的代码标记为未覆盖。这是预期的行为吗?还是我配置错误?
Maven - 子模块中的 Cobertura 配置:
构建部分:
报告部分:
运行 Cobertura 报告的命令:
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 插件影响的字节码进行干净的构建。
java - cobertura maven插件是否不适用于接口中的java8默认方法声明?
我已经用 java8 默认方法声明声明了我的接口:
接下来,我执行了 Maven 目标:
日志显示错误,因为 cobertura 不支持 java8 默认方法声明:
我该如何解决?
maven-3 - 代码覆盖率:Cobertura 和 SonarQube 5.3 Maven 集成
作为持续集成的一部分,我们正在将所有项目从 ANT 迁移到 MAVEN。我们正在将 JaCoCo 用于新项目以测量代码覆盖率并与 SonarQube 成功集成。
我们现有的 ANT 项目很少使用 Cobertura。在将其迁移到 Maven 时,我收到以下异常
例外
pom.xml
专家,我这里有什么遗漏吗?