gpt4 book ai didi

java - JaCoCo 覆盖报告设置(不包括测试类)

转载 作者:行者123 更新时间:2023-11-30 08:14:05 25 4
gpt4 key购买 nike

我使用以下目标生成 jacoco 覆盖率报告:

   <target name="report" depends="test">

<!-- This task needs the collected execution data and ... -->
<executiondata>
<file file="${result.exec.file}" />
</executiondata>

<!-- the class files and optional source files ... -->
<structure name="JaCoCo Ant Example">
<classfiles>
<fileset dir="${result.classes.dir}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${src.dir}" >
<exclude name="**/*Test*.class"/>
</fileset>
</sourcefiles>
</structure>

<!-- to produce reports in different formats. -->
<html destdir="${result.report.dir}" />
<csv destfile="${result.report.dir}/report.csv" />
<xml destfile="${result.report.dir}/report.xml" />
</jacoco:report>
</target>

问题是报告考虑了单元测试的代码,我认为这是一个错误。这样,您的行覆盖百分比和指令覆盖将被人为增加(因为测试行被认为是 100% 覆盖)并且报告的正确性会受到很大影响。我试着添加这个标签

<exclude name="**/*Test*.class"/

在 fileset 标签下,希望将 testClasses 排除在外,但它不起作用。你对我的问题有什么想法吗?我想以编程方式避免报告修改。谢谢!

最佳答案

您需要从 classfiles 文件集中排除测试类文件:

<structure name="JaCoCo Ant Example">
<classfiles>
<fileset dir="${result.classes.dir}">
<exclude name="**/*Test*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${src.dir}" />
</sourcefiles>
</structure>

参见 documentation :

"Note that the classfiles and sourcefiles elements accept any Ant resource collection. Therefore also filtering the class file set is possible and allows to narrow the scope of the report, for example:

<classfiles>
<fileset dir="classes">
<include name="org/jacoco/examples/important/**/*.class"/>
</fileset>
</classfiles>

这是因为实际报告是从类文件 完成的。 sourcefiles 用于在报告中包含突出显示的源代码 - 因为人眼当然无法阅读编译后的代码。

再次来自文档:

classfiles: Container element for Ant resources and resource collections that can specify Java class files, archive files (jar, war, ear etc. or Pack200) or folders containing class files. Archives and folders are searched recursively for class files.

sourcefiles: Optional container element for Ant resources and resource collections that specify corresponding source files. If source files are specified, some report formats include highlighted source code. Source files can be specified as individual files or as source directories.

关于java - JaCoCo 覆盖报告设置(不包括测试类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29702823/

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