【问题标题】:ANT xmlproperty: demux properties with multiple valuesANT xmlproperty:具有多个值的 demux 属性
【发布时间】:2015-01-18 10:39:12
【问题描述】:

我正在使用 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 等,我会将它们压缩在一起,然后搜索。我不知道如何在 ant 中进行压缩或搜索。

【问题讨论】:

  • 我不太确定我是否理解您想要实现的目标,但看起来您想要分析 xml。过去我在 xmltask 上取得了成功。 oopsconsultancy.com/software/xmltask可能值得一看。
  • @HankLapidez 谢谢。 Xmlproperty 确实加载了 xml;问题在于它将值多路复用到变量中的时髦方式。

标签: java xml ant cobertura


【解决方案1】:

我用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 复制的片段默认不会回显,而是写入另一个文件。

这不是一个解决方案,而是一个可能有帮助的示例。

我认为自己编写一个自定义的 ant 任务会少一些工作。

【讨论】:

  • 谢谢,这很有趣。
猜你喜欢
  • 1970-01-01
  • 2016-03-08
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 2013-11-15
  • 1970-01-01
相关资源
最近更新 更多