【问题标题】:how to check if class file or jar file is instrumented?如何检查类文件或jar文件是否被检测?
【发布时间】:2014-01-06 20:41:57
【问题描述】:

第一个问题 - 有什么方法可以验证特定的 jar 文件或类文件是否已使用 cobertura 进行检测?

第二个问题 - 如果跟随 ant scipt 可以,请告诉我。我没有得到任何输出。也没有检测文件或 cobertura.ser 和 build 说好的。

<project>
<property name="cobertura.dir" value="../cobertura-2.0.3" />
<property name="instrumented.dir" value="../destination" />
<property name="jars.dir" value="../basedir" />

<path id="cobertura.classpath">
    <fileset dir="${cobertura.dir}">
        <include name="cobertura-2.0.3.jar" />
        <include name="lib/**/*.jar" />
    </fileset>
</path>



<target name="instrument-classes">
<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />
<delete file="cobertura.ser" />

<cobertura-instrument todir="${instrumented.dir}">
    <fileset dir="${jars.dir}">
        <include name="XXX.jar" />
    </fileset>
    <fileset dir="${jars.dir}">
        <include name="YYYY.jar" />
    </fileset>
</cobertura-instrument>
</target>
</project>

【问题讨论】:

    标签: code-coverage instrumentation cobertura


    【解决方案1】:

    您可以使用 java 反编译器来查看检测类中对 net.sf.cobertura.xxx 类的引用。您还可以使用一个简单的文本编辑器来可视化二进制文件(例如 TextPad),如果您仔细观察,您也会看到 net.sf.cobertura 引用(使用文本比较工具来比较原始类和检测类让它更明显)。

    你的蚂蚁 sn-p 看起来一切正常,除了可疑的:

    <property name="jars.dir" value="../basedir" />
    

    也许你的意思是这样的:

    <property name="jars.dir" value="${basedir}/.." />
    

    重点是:您应该验证嵌套文件集是否确实包含文件,否则cobertura-instrument 任务将无法完成任何事情。

    【讨论】:

      猜你喜欢
      • 2013-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多