如何在jacoco中获得自动化测试覆盖率?

问题描述 投票:0回答:2

我的 Web 应用程序在 tomcat 上运行,并且在单独的项目中,我有调用我的应用程序的所有 api 的测试用例,现在我想检查代码覆盖率,在自动化测试套件的 api 调用期间覆盖。

我遵循的步骤:

  1. 我的网络应用程序的 pom.xml 中的 jacoco 依赖项。
  2. 下载了 jacocoagent.jar
  3. 在catalina.sh中设置JAVA_OPTS导出JAVA_OPTS =“$ JAVA_OPTS - javaagent:/tmp/jars/jacocoagent.jar=destfile=/tmp/jars/jacoco.exec,输出=文件”
  4. 毕竟api杀死了tomcat
  5. 复制 jacoco.exec 文件
  6. 创建 html 报告

但覆盖率仍然为零,我错过了什么请建议

java jacoco jacoco-maven-plugin
2个回答
0
投票

你可以试试这个吗,

JAVA_OPTS="$JAVA_OPTS -javaagent:/tmp/jars/jacocoagent.jar=includes=*,destfile=/tmp/jars/jacoco.exec,append=true

0
投票

我在使用 Grails/Groovy/Gradle 时也遇到同样的问题。 据我了解,将 Java 配置为在运行时使用 JaCoCo 代理进行检测,因此您不需要在构建的 (pom.xml) 中包含依赖项。

检查 jacoco.exec 文件的内容(我假设它不为空)。对于该运行命令:

java -jar <jacoccli.jar-path> execinfo <jacoco.exec-path>
。 这将列出 JaCoCo 收集的覆盖范围信息的所有类别。就我而言,只有
apache
包。所以它检查的是 Tomcat 本身的一小部分而不是 webapp 的覆盖范围,它正在运行。

© www.soinside.com 2019 - 2024. All rights reserved.