我必须用wildfly设置jacoco。 我在standalone.bat中提供了java opts。
我有覆盖和报告的jcoco ant任务。
我的测试代码覆盖率始终为0%。 我的junits延伸cactus servertest。
如果我不扩展servertest(仙人掌),我将获得100%的代码覆盖率,否则为0%。
jcoco ant任务。 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} /模块/ ** / *,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>
对此问题的任何见解。请
答案 0 :(得分:1)
你不应该将任何JAVA_OPTS附加到独立的bat上,在[yourjboss dir] /bin/standalone.conf
中执行看看我的回答here
我为Wildfly进行了REST测试,希望你会发现它很有用
答案 1 :(得分:0)
是类型错误。
只需添加 * * 帮我解决了问题。 当我看着classdump时,我找到了不需要的课程。 当我添加包含时,只添加了必需的类。