Jacoco 不使用 exclude 函数从报告中排除该类 [英] Jacoco not excluding the class from the report using exclude function

查看:62
本文介绍了Jacoco 不使用 exclude 函数从报告中排除该类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将 jacoco 与 Ant 和下面给出的 build.xml 一起使用.我想从 util.3.5 jar 中排除 eQMIUtil 类.但是我在生成报告时获得了所有方法.有什么办法可以解决这个问题.**** 实际上是做什么的?

I am using jacoco with Ant and with the build.xml given below. I want to exclude eQMIUtil class from util.3.5 jar. But I am getting all the methods while generating report. Is there any way I can get a solution for this. What does **<arg value= "2*3+4">** actually do?

<description>
  Example Ant build file that demonstrates how a JaCoCo coverage report
  can be itegrated into an existing build in three simple steps.
</description>

<!-- property name="src.dir" location="./src/main/java" />
<property name="result.dir" location="./target" />
<property name="result.classes.dir" location="${result.dir}/classes" />
<property name="result.report.dir" location="${result.dir}/site/jacoco" />
<property name="result.exec.file" location="${result.dir}/jacoco.exec" /-->

<property name="activity.src.dir" location="./src/MIActivities" />
<property name="modules.src.dir" location="./src/Modules" />
<property name="plugins.src.dir" location="./src/Plugins" />
<property name="classes.src.dir" location="F:/jacoco/test/classes" />

<property name="result.dir" location="./target" />
<property name="result.classes.dir" location="${result.dir}/classes" />
<property name="result.Activities.dir" location="F:/Tomcat/apache-tomcat6/webapps/MI35PCQA01P/Activities" />
<property name="result.report.dir" location="F:/Jacoco/test/target/site" />
<property name="result.exec.file1" location="F:/Jacoco/jacoco.exec" />


<property name="project.parent.build.directory" location="C:/MIWork/Jacoco/Coverage" />

<!-- Step 1: Import JaCoCo Ant tasks -->
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
    <classpath path="F:/Jacoco/jacoco-0.7.5.201505241946/lib/jacocoant.jar" />
</taskdef>

<target name="clean">
    <delete dir="${result.report.dir}" />
</target>

<target name="report" >


    <jacoco:report>

        <executiondata>
                <file file="${result.exec.file1}"/>
        </executiondata>

        <structure name="Example Project">
            <classfiles>

                <fileset file="${classes.src.dir}/util-3.5.jar" >
                 <exclude name="**/*eQMIUtil*.class"/>
                 </fileset>

            </classfiles>
            <sourcefiles encoding="UTF-8">
            </sourcefiles>
        </structure>     
        <html destdir="${result.report.dir}"/>

    </jacoco:report>   
    </target>
<target name="test" depends="report">
    <!-- Step 2: Wrap test execution with the JaCoCo coverage task -->
    <jacoco:coverage destfile="${result.exec.file}">
        <java classname="org.jacoco.examples.parser.Main" fork="true">
            <classpath path="${result.classes.dir}" />
            <arg value="2 * 3 + 4"/>
            <arg value="2 + 3 * 4"/>
            <arg value="(2 + 3) * 4"/>
            <arg value="2 * 2 * 2 * 2"/>
            <arg value="1 + 2 + 3 + 4"/>
            <arg value="2 * 3 + 2 * 5"/>
        </java>
    </jacoco:coverage>
</target>   

<target name="finalreport" depends="test">
    <!-- Step 3: Create coverage report -->
    <jacoco:report>

        <!-- 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}" />
            </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>   

<target name="rebuild" depends="clean,report" />

推荐答案

不是在 下嵌套 ,而是可以嵌套一个 代替.

Instead of nesting a <fileset> under <jacoco:report>, you can nest a <zipfileset> instead.

这...

<jacoco:report>
    ...
    <structure name="Example Project">
        <classfiles>
            <fileset file="${classes.src.dir}/util-3.5.jar" >
                 <exclude name="**/*eQMIUtil*.class"/>
             </fileset>
        </classfiles>
        ...
    </structure>     
    ...
</jacoco:report>

...应该变成...

<jacoco:report>
    ...
    <structure name="Example Project">
        <classfiles>
            <zipfileset src="${classes.src.dir}/util-3.5.jar">
                <exclude name="**/*eQMIUtil*.class"/>
            </zipfileset>
        </classfiles>
        ...
    </structure>     
    ...
</jacoco:report>

有效,因为 JAR 文件也是 ZIP 文件.

<zipfileset> works because JAR files are also ZIP files.

这篇关于Jacoco 不使用 exclude 函数从报告中排除该类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆