当前位置: 首页 > 工具软件 > CruiseControl > 使用案例 >

CruiseControl学习三

申屠俊发
2023-12-01

今天把CruiseControl和ant集成起来,但是CruiseControl显示没有进行任何JUnit Test,所以没有Test Report。然而,喵喵明明有test的丫???想想自己确实没有做任何配置,但是既然这么说,自然就是可配置的,于是,喵喵再次研究了一下CruiseControl的文档,终于找出了解决方案。

前面说过,cruisecontrol下面子元素<project>有七个主要子元素,分别是:

  • <listeners>
  • <bootstrappers>
  • <compound>
  • <modificationset>
  • <schedule>
  • <log>
  • <publishers>

而其中的<log>元素就是用来设定cruisecontrol产生的log文件存储位置的,而它又有三个子元素,分别是:

  • <merge>   Merges log file together.
  • <gzip>      GZips old log files
  • <delete>   Deletes old log files.

而这个<merge>元素就可以用来在build结束之后把指定的xml文件merge到cruisecontrol的log中,而最普遍的就是ant中<junit>task生成的test results。

配置文件如下:

<log dir="${cruisecontrol.buildpath}/logs/${project.name}">

    <merge file="" dir="${test.result}" removeproperties="true" pattern="*.xml"/>

</log>

解释一下,file和dir属性必须设定其中一个,如果设定了file,就不需要设定pattern;removeproperties用于指定是否需要在merge的时候remove properties,默认为true;pattern用于指定通配符,默认为*.xml

当然,ant的<junit>task需要指定<formatter type="xml"/>

 类似资料: