java - Jacoco 报告 0 类
问题描述
我是 mvn & jacoco 的新手,我对mvn jacoco:report
谁在 jacoco.exec 文件中找到了 0 个类有疑问
jacoco 代理在 docker 容器内执行:-javaagent:/opt/jboss/jacoco/org.jacoco.agent.jar=destfile=/opt/jboss/jacoco/jacoco.exec,output=tcpserver,address=*,port=6667
我通过了standalone.conf中的选项
#
# Specify options to pass to the Java VM.
#
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/jboss/jacoco/org.jacoco.agent.jar=destfile=/opt/jboss/jacoco/jacoco.exec,output=tcpserver,address=*,port=6667"
else
echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi
够了吗?
当我启动时,jacoco:dump
我成功连接到我的容器并在本地创建了一个 jacoco.exec 文件(不是空的)
我的应用程序是这样的:
- Docker 容器:wildfly(我需要代码覆盖的地方)
- 本地机器:我的 Maven 应用程序
- 本地机器:我的 selenium maven 项目(我执行 jacoco 的地方)
我的插件配置 pom :
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<configuration>
<dataFile>/home/mypath/jacoco.exec</dataFile>
<reset>true</reset>
<address>172.17.0.3</address>
<port>6667</port>
<append>false</append>
</configuration>
</plugin>
编辑: jacococli 生成报告,所以我的 exec 文件是正确的
编辑:好的,所以我想我发现我的问题是我的 maven 应用程序是我的 selenium 项目的依赖项,似乎 jacoco-maven-plugin 无法使用依赖项(获取所有类文件)来创建报告但是有了 ant,有更多的选择,所以这是我的解决方案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target name="report">
<!-- Execute an ant task within maven -->
<echo message="Generating JaCoCo Reports" />
<taskdef name="report"
classname="org.jacoco.ant.ReportTask">
<classpath
path="xxxtarget/*.jar" />
</taskdef>
<mkdir dir="${basedir}/target/coverage-report" />
<report>
<executiondata>
<fileset dir="${basedir}/target">
<include name="jacoco.exec" />
</fileset>
</executiondata>
<structure name="Integration Tests Coverage Report">
<classfiles>
<fileset dir="xxx/target" >
<include name="*.jar"/>
</fileset>
</classfiles>
</structure>
<html destdir="${basedir}/target/coverage-report/html" />
</report>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>0.8.2</version>
</dependency>
</dependencies>
</plugin>
我终于有了 pom 自动生成的报告
谢谢
解决方案
您如何执行 jacoco 报告目标?
您可以尝试运行如下命令:
mvn -B -DskipTests org.jacoco:jacoco-maven-plugin:0.7.9:report -Djacoco.dataFile="<..>\target\jacoco-merged.exec"
推荐阅读
- javascript - 在数据库配置之前从 Passport-azure-ad 获取数据
- winforms - Powershell Forms - 更改列表框文本颜色
- api - 这个叫什么?通过您的应用程序登录其他网站
- c# - 在 Discord.Net 中踢用户
- javascript - 传递 datepicker 的日期参数以获取 FullCalendar 中的资源
- android - 如何从先前生成的 ECDSA 两个编码密钥对构造私钥?
- ios - 我正在尝试根据已创建的引用读取和写入 firebase
- c# - 带有令牌的 IdentityServer 调用 API 通过混合流传递到 MVC 客户端
- r - 在 dplyr 中分组的众多变量之间的相关性
- android-emulator - 在模拟器上安装 Android 7.1.2