我正在使用cobertura计算测试覆盖率。我希望我的ant脚本能够回显有关特定包的覆盖信息。
到目前为止,我有:
<target name="coverage-check">
<loadfile property="coveragexml" srcFile="${coverage.report.dir}/coverage.xml">
<filterchain>
<linecontains negate="true">
<contains value="!DOCTYPE"/>
</linecontains>
</filterchain>
</loadfile>
<xmlproperty validate="false">
<string value="${coveragexml}"/>
</xmlproperty>
</target>
这可以将各种cobertura信息加载到ant变量中,例如:coverage.packages.package(name)=lots,of,package,names
。
我想找到一种方法来将特定的包名称(从一个变量)到存储在其他变量中的覆盖度量。如果我使用的是python,lisp等,我会将它们压缩在一起,然后搜索。我不知道如何在蚂蚁中进行压缩或搜索。
答案 0 :(得分:2)
我使用xmltask
做了一个例子<target name="xml-test">
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask" classpathref="extension.classpath"/>
<property name="xml.file" location="coverage.xml"></property>
<!-- package to search for -->
<property name="packageName" value="foo"></property>
<!-- extract for example line-rate and echo it -->
<xmltask source="${xml.file}">
<copy path="/coverage/packages/package[@name='${packageName}']/@line-rate" property="line-rate" />
</xmltask>
<echo>
Line Rate: ${line-rate}
</echo>
<!-- extract complete xml-block for package ${packageName}
and write it to other file
-->
<xmltask source="${xml.file}">
<copy path="/coverage/packages/package[@name='${packageName}']" buffer="foo-buffer" append="true" />
</xmltask>
<!-- write cut out to file -->
<xmltask dest="foo-coverage.xml">
<insert path="/" buffer="foo-buffer"/>
</xmltask>
</target>
默认情况下,从源xml复制的剪切不会回显,而是写入另一个文件。
这不是一个解决方案,而是一个可能有帮助的例子。
我认为自己编写自定义蚂蚁任务的工作量会减少。