上面的简单的XSL模板需要产生一个只包含我们需要的值的属性文件,内容如下:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" omit-xml-declaration="yes"/>
<xsl:template match="coverage">
total.line-rate=
<xsl:value-of select="floor(@line-rate*100)"/>
</xsl:template>
</xsl:stylesheet>
要注意的是方法floor(@line-rate*100),可以将小数覆盖率转换为整型覆盖率。最终结果是一个只包含下面一行的coverage.properties文件:
total.line-rate=44
现在我们可以使用Ant的属性任务来从coverage.properties读取这个Ant属性所需要的覆盖率:
<property file="build/coverage.properties" />
最后,我们可以将最初的"80"使用新的Ant属性替换,代码如下:
<cobertura-check totallinerate="${total.line-rate}"/>
三、将内容放到一起
最后的build.xml文件看上去的形似如下:
<target name="coverage_check" depends="check_against_previous_rate">
<antcall target="coverage_report"/>
</target>
<target name="coverage_report">
<cobertura-report format="xml" destdir="." />
</target>
<target name="check_against_previous_rate" depends="coverage_xml_to_properties">
<property file="build/coverage.properties" />
<cobertura-check totallinerate="${coverage.line-rate}" />
</target>
<target name="coverage_xml_to_properties">
<xslt in="coverage.xml" out="build/coverage.properties" style="src/xsl/coverage.xsl" />
</target>
要注意一个新的覆盖报告仅仅当覆盖核对被通过后才能被产生,也就是说,每次提高覆盖率后,都会比上一次建立的代码质量有所提高。
四、改善跟踪率的其他方法
还有一些递增地改善代码质量的方法是通过将覆盖率记录到文件中来跟踪代码改善率。我们可以通过Ant的echo任务建立如下的代码:
<target name="time">
<tstamp>
<format property="date.time" pattern="yyyy-MM-dd HH:mm"/>
</tstamp>
</target>
<target name="log" depends="time">
<echo file="${history.txt}" append="true">
${date.time};total.line-rate;${total.line-rate}
</echo>
</target>
五、结果可测量、改善可视化
经过对一个工程的测试,在这个工作使用本文所提供的策略后的一周内定,这个工程的代码质量改善了超过30%.而更另人兴奋的是以前开发人员都不需要对代码进行测试,而现在它们会为通过测试而使他们的代码质量的提高感到骄傲。
当然,我们不需要只停留在本文所介绍的方法和理论上。我们也可以将增量改善策略用在其他的代码规则中。因为大多数的代码核对工具都可以产生基于XML格式的输出,我们可以使用XSL模板来过滤出与之相关的代码规则,并将这些规则作为当前的代码核对工具的输入。
通告:http://www.qqread.com/java/2008/01/s392195.html相关专题
- Java环境安装配置 (5640篇文章)
- Java编程开发手册 (8291篇文章)
- Java与其他集成开发篇 (181篇文章)
- J2SE综合:浅谈java程序发布之 jre 篇 (11次浏览)
- JAVA代码中使用魔法数值 (8次浏览)
- Hibernate缓存管理 (6次浏览)
- JAVA代码应该流畅和结构化 (5次浏览)
- Java JVM设置对性能的影响 (4次浏览)
- 开发框架:深入了解 Struts Validator (3次浏览)
- Java中的通信机制及与C/C API的集成 (1次浏览)
- 用Hibernate实现领域对象的自定义字段 (1次浏览)
- Java语言入门 简述Java语言回收机制 (0次浏览)
- 2008年Java开发者最迫切的五个期望 (0次浏览)



