gpt4 book ai didi

maven-3 - 单元测试代码的 Jacoco 覆盖率

转载 作者:行者123 更新时间:2023-12-01 23:51:34 27 4
gpt4 key购买 nike

我正在将 ANT 构建转换为 Maven。我不使用声纳。

在 Maven 中,Jacoco 似乎没有报告有关单元测试本身的覆盖率,而 ANT 则报告了。我也一直在尝试为我的 Maven 构建获取这个,但我找不到任何东西。

看来我应该添加一个 <include>prepare-agent目标,但我不确定要包括什么。我试过 src/test/java/*以及该主题的各种变体,但没有一个有效。

如何在 Maven 中配置 Jacoco 以便它报告单元测试代码的覆盖率?

最佳答案

事实证明,做到这一点的唯一方法是使用 maven-antrun-plugin .

无需添加 <include>prepare-agent目标,因为所有信息都存在于 jacoco.exec 中它生成的文件,包括单元测试代码。
report但是,目标不包括它,并且它也不能配置为使用它。您需要专门设置 classfilessourcefiles属性,而 Maven Jacoco 插件不会让你这样做。

因此,您需要 Maven Antrun 插件,并从那里配置和调用它。

<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>default-report</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<taskdef name="report" classname="org.jacoco.ant.ReportTask" classpathref="maven.plugin.classpath" />
<report>
<executiondata>
<file file="${project.build.directory}/jacoco.exec" />
</executiondata>
<structure name="Coverage">
<classfiles>
<fileset dir="${project.build.directory}/classes"/>
<fileset dir="${project.build.directory}/test-classes"/>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="src/main/java"/>
<fileset dir="src/test/java"/>
</sourcefiles>
</structure>
<check failonviolation="true" violationsproperty="violation">
<rule element="BUNDLE">
<limit counter="INSTRUCTION" value="COVEREDRATIO" minimum="0.95" />
</rule>
</check>
<html destdir="${project.build.directory}/jacoco-internal"/>
</report>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>${jacoco.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>

关于maven-3 - 单元测试代码的 Jacoco 覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280308/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com