今天把CruiseControl和ant集成起来,但是CruiseControl显示没有进行任何JUnit Test,所以没有Test Report。然而,喵喵明明有test的丫???想想自己确实没有做任何配置,但是既然这么说,自然就是可配置的,于是,喵喵再次研究了一下CruiseControl的文档,终于找出了解决方案。
前面说过,cruisecontrol下面子元素<project>有七个主要子元素,分别是:
而其中的<log>元素就是用来设定cruisecontrol产生的log文件存储位置的,而它又有三个子元素,分别是:
而这个<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"/>
OK,就这么多了,搞定~~