Ant NetBeans 7 corbetura显示0%的覆盖率
我正在将Cobertura 1.9.4与NetBeans 7.2.1、Ant 1.8.3和JDK 1.7.005与JUnit 4.10一起使用 正在生成我的HTML覆盖率报告,但它们都列出了0%的单元测试覆盖率。这种情况不应该发生,因为我有一个单元测试,它覆盖了我的整个util类 有趣的是,如果我通过更改测试路径将插入指令的类包括在测试路径中,那么我的所有单元测试都将失败Ant NetBeans 7 corbetura显示0%的覆盖率,ant,code-coverage,netbeans-7,junit4,cobertura,Ant,Code Coverage,Netbeans 7,Junit4,Cobertura,我正在将Cobertura 1.9.4与NetBeans 7.2.1、Ant 1.8.3和JDK 1.7.005与JUnit 4.10一起使用 正在生成我的HTML覆盖率报告,但它们都列出了0%的单元测试覆盖率。这种情况不应该发生,因为我有一个单元测试,它覆盖了我的整个util类 有趣的是,如果我通过更改测试路径将插入指令的类包括在测试路径中,那么我的所有单元测试都将失败 run.test.classpath=\ ${javac.test.classpath}:\ ${build
run.test.classpath=\
${javac.test.classpath}:\
${build.test.classes.dir}
到
此外,如果我打开emma代码覆盖工具,我的所有测试用例也会崩溃
注意:有一篇几乎相同的帖子,但由于没有回复,有点过时,而且我的配置也不同,所以我想我应该在这里捕获我的设置。这里有两个与我的配置类似的引用:1)2)
从我的build.xml文件中剪下
<!-- this strangely doesn't work so i'm temporarily using hardcoded path below
<taskdef classpath="cobertura.jar" resource="tasks.properties" />
-->
<path id="cobertura.class.path">
<pathelement location="libs/cobertura.jar" />
<pathelement location="libs/asm-3.0.jar" />
<pathelement location="libs/asm-tree-3.0.jar" />
<pathelement location="libs/log4j-1.2.9.jar" />
<pathelement location="libs/jakarta-oro-2.0.8.jar" />
</path>
<taskdef resource="tasks.properties" classpathref="cobertura.class.path" />
<target depends="-init-check,init" name="-init-check-cobertura">
<fail unless="build.classes.dir">Must set build.classes.dir</fail>
</target>
<target name="-post-compile" depends="-init-check-cobertura,init">
<delete dir="${build.instrumented.dir}" />
<delete dir="${build.test.coverage.dir}" />
<mkdir dir="${build.instrumented.dir}" />
<mkdir dir="${build.test.coverage.dir}" />
<cobertura-instrument todir="${build.instrumented.dir}"
datafile="${build.dir}/cobertura.ser">
<fileset dir="${build.classes.dir}">
<include name="**/*.class"/>
</fileset>
</cobertura-instrument>
</target>
<target name="coverage-report" depends="test">
<cobertura-report format="html" destdir="${build.test.coverage.dir}"
datafile="${build.dir}/cobertura.ser"/>
<delete file="${build.dir}/cobertura.ser" />
<delete dir="${build.instrumented.dir}" />
</target>
仅供参考,我已经尝试将这些添加到build-impl.xml中的标记中。仍然是零覆盖
<jvmarg value="-Dcobertura.use.java.nio=false"/>
<jvmarg value="-Dnet.sourceforge.cobertura.datafile=${basedir}/cobertura.ser"/>
ant测试目标来自netbeans生成的build-impl.xml文件
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse"
description="Run unit tests." name="test"/>
请显示测试
目标。@Javier添加了由netbeans生成的我的测试目标。
<jvmarg value="-Dcobertura.use.java.nio=false"/>
<jvmarg value="-Dnet.sourceforge.cobertura.datafile=${basedir}/cobertura.ser"/>
<target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse"
description="Run unit tests." name="test"/>