代码之家  ›  专栏  ›  技术社区  ›  gkw

Cobertura显示覆盖率为0%

  •  3
  • gkw  · 技术社区  · 14 年前

    pathelement location="${build.classes.dir}" / pathelement location="${build.test.classes.dir}" /

    但是,当我把它改回 ,我总是有0%的覆盖率。

    fwiw,当指令插入文件夹中确实包含插入指令的类时 ${build.instrumented.dir} (这些类比 ${build.classes.dir} 位置)。是的,我在删除后重试过 cobertura.ser

    我能知道怎么回事吗?

    干杯,

    的片段 build.xml 在一个 -ejb 文件夹。

               <property environment="env"/>
               <path id="cobertura.class.path">
                   <fileset dir="${build.dir}/../../lib">
                       <include name="**/*.jar"/>
                   </fileset>
               </path>
               <taskdef classpathref="cobertura.class.path" resource="tasks.properties"/>
    
               <target name="-pre-compile-test">
                   <delete dir="${build.instrumented.dir}" />
                   <delete dir="${build.report.cobertura.dir}" />
                   <mkdir dir="${build.instrumented.dir}" />
                   <mkdir dir="${build.report.cobertura.dir}" />
                   <cobertura-instrument todir="${build.instrumented.dir}" classpathref="cobertura.class.path">
                       <ignore regex="org.apache.log4j.*" />
                       <includeClasses regex=".*" />
                       <excludeClasses regex=".*\.Test.*" />
                       <excludeClasses regex=".*\.TestSuite.*" />
    
                       <instrumentationClasspath>
                           <pathelement location="${build.classes.dir}" />
                       </instrumentationClasspath>
                   </cobertura-instrument>
               </target>
    
               <target name="-post-test-run">
                   <cobertura-report format="html" srcdir="${src.dir}" destdir="${build.report.cobertura.dir}"/>
                   <cobertura-report format="xml" srcdir="${src.dir}" destdir="${build.report.cobertura.dir}"/>
               </target>
    

    ===

            ...
            build.test.classes.dir=${build.dir}/test/classes
            build.test.results.dir=${build.dir}/test/results
            build.instrumented.dir=${build.dir}/instrumented
            build.report.dir=${build.dir}/report
            build.report.cobertura.dir=${build.report.dir}/cobertura
            ...
            javac.classpath=\
            ${libs.GlassFish_v3.classpath}:\
            ${file.reference.mysql-connector-java-5.1.13-bin.jar}
            ...
            javac.test.classpath=\
            ${javac.classpath}:\
            ${file.reference.mysql-connector-java-5.1.13-bin.jar}:\
            ${libs.Libraries_Needed_For_JUnit.classpath}:\
            ${build.instrumented.dir}:\
            ${build.classes.dir}:\
            ${libs.junit_4.classpath}
            ...
            run.test.classpath=\
            ${javac.test.classpath}:\
            ${file.reference.mysql-connector-java-5.1.13-bin.jar}:\
            ${libs.Cobertura.classpath}:\
            ${libs.Libraries_Needed_For_JUnit.classpath}:\
            ${libs.junit_4.classpath}:\
            ${build.test.classes.dir}
            ...
            src.dir=${source.root}/java
            test.src.dir=test
    
    1 回复  |  直到 12 年前
        1
  •  0
  •   wildcard    11 年前

    只有当你得到0%的保险时

    • 当您没有正确设置类路径时,您的测试 针对未插入指令的代码运行,或者,

    这里有一个关于类路径的好例子 https://github.com/cobertura/cobertura/wiki/Ant-Task-Reference