如何在wildfly中设置jacoco java代理

时间:2014-05-19 21:30:01

标签: ant junit4 jacoco cactus wildfly-8

我必须用wildfly设置jacoco。 我在standalone.bat中提供了java opts。

我有覆盖和报告的jcoco ant任务。

我的测试代码覆盖率始终为0%。 我的junits延伸cactus servertest。

如果我不扩展servertest(仙人掌),我将获得100%的代码覆盖率,否则为0%。

在sessions.html中,我找不到类。

  1. standalone.bat配置。 http://www.eclemma.org/jacoco/trunk/doc/agent.html
  2. jcoco ant任务。 http://www.eclemma.org/jacoco/trunk/doc/ant.html

    standalone.bat

  3. set" JAVA_OPTS = -Dprogram.name =%PROGNAME %% JAVA_OPTS%-javaagent:{myhome.dir} /jacocoagent.jar=destfile= {myhome.dir} /jacoco.exec,excludes = $ { jboss.home.dir} /模块/ ** / *,classdumpdir = {myhome.dir} /转储,dumponexit =假,追加= FALSE"

    蚂蚁任务:

    <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>
    

    对此问题的任何见解。请

2 个答案:

答案 0 :(得分:1)

你不应该将任何JAVA_OPTS附加到独立的bat上,在[yourjboss dir] /bin/standalone.conf

中执行

看看我的回答here

我为Wildfly进行了REST测试,希望你会发现它很有用

答案 1 :(得分:0)

是类型错误。

只需添加 * * 帮我解决了问题。 当我看着classdump时,我找到了不需要的课程。 当我添加包含时,只添加了必需的类。