Ant NetBeans 7 corbetura显示0%的覆盖率

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

我正在将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.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"/>