How to setup jacoco java agent in wildfly

3.1k Views Asked by At

I have to setup jacoco with wildfly. i have provided java opts in standalone.bat.

i have jcoco ant tasks for coverage and report.

i am getting test code coverage always 0%. my junits extend cactus servertest.

if i do not extend servertest(cactus) i will get code coverage as 100% else 0%.

In the sessions.html i do not find classes.

  1. standalone.bat configuration. http://www.eclemma.org/jacoco/trunk/doc/agent.html
  2. jcoco ant tasks. http://www.eclemma.org/jacoco/trunk/doc/ant.html

standalone.bat

set "JAVA_OPTS=-Dprogram.name=%PROGNAME% %JAVA_OPTS% -javaagent:{myhome.dir}/jacocoagent.jar=destfile={myhome.dir}/jacoco.exec,excludes=${jboss.home.dir}/modules/**/*,classdumpdir={myhome.dir}/dump,dumponexit=false,append=false"

ant tasks:

<target name="test">
    <delete file="jacoco.exec" />
    <delete dir="${project.dir}/junit" />
    <mkdir dir="${project.dir}/junit/result" />
    <mkdir dir="${project.dir}/junit/report" />
    <jacoco:coverage>
        <junit fork="true" maxmemory="512M" printsummary="true" haltonerror="false" haltonfailure="false" showoutput="yes">
            <jvmarg line="${cactus.args}" />
            <classpath>
                <path refid="build.classpath1" />
            </classpath>
            <formatter type="xml" />
            <batchtest todir="${project.dir}/junit/result">
                <fileset dir="{JBOSS.HOME}\standalone\deployments\flexnet.ear\flexnet.war\WEB-INF\classes" includes="**/DumyTest*" excludes="${test.exclude.files}" />
            </batchtest>
        </junit>
    </jacoco:coverage>
    <junitreport tofile="TestResults.xml" todir="${project.dir}/junit/result">
        <fileset dir="${project.dir}/junit/result" />
        <report format="frames" todir="${project.dir}/junit/report" />
    </junitreport>
</target>

<target name="test-coverage-report">
    <delete dir="${project.dir}/code-coverage" />
    <jacoco:report>
        <executiondata>
            <file file="jacoco.exec" />
        </executiondata>
        <structure name="Code Coverage Results">
            <group name="FNO">
                <classfiles>
                    <fileset dir="{JBOSS.HOME}\standalone\deployments\flexnet.ear\flexnet.war\WEB-INF\classes" />
                </classfiles>
                <sourcefiles encoding="UTF-8">
                    <fileset dir="${src.dir}" />
                    <fileset dir="${testsrc.dir}" />
                </sourcefiles>
            </group>
        </structure>
        <html destdir="${project.dir}/code-coverage" />
    </jacoco:report>
</target>

Any insight on this issue.please

1

There are 1 best solutions below

0
On

it was type error.

Just Adding * * helped me to resolve issue. When i looked classdump i found classes which were not required. when i added includes only required classes were added.