持续集成实践三,灵感来自于Martin Fowler的“持续集成“一文。可以在www.martinfowler.com看到,国内有人翻译成了中文。
本文假设读者具备如下知识:
1、熟练ant进行java工程编译(参考本人“ant编译java工程”一文)
2、junit知识,看看www.junit.org
准备:
1、www.junit.org下载junit.jar
2、xml.apache.org下载xalan.jar(ant 的 juntreport需要用到,xalan好版本大于2.0,不然你还要下载其他的java库)
把junit.jar、xalan.jar拷贝到$ANT_HOME/lib/下面,并且好加到系统CLASSPATH(junit.jar是肯定要的,xalan.jar不清楚了)。
对自己的程序添加junit测试程序,此处请参考www.junit.org的文档,很简单的。
然后在build.xml中添加如下指令,很多东西略过,所以强烈要求读者先完成本人“ant编译java工程”一文)
<!-- 单元测试,需要完成compile任务 -->
<target name="test" depends="compile">
<junit printsummary="yes">
<!-- 需要的classpath -->
<classpath refid="classpath"/>
<batchtest>
<!-- 单元测试文件为所有src目录下的*Test.java文件 -->
<fileset dir="${srcDir}"><include name="**/*Test.java"/></fileset>
<!-- 生成格式为xml,也可以用plain或者brief -->
<!-- 为什么生成xml,是为了下一步做report用 -->
<formatter type="xml"/>
</batchtest>
</junit>
<!-- 对xml文件生成相应的html文件在reports目录下 -->
<!-- 如果指定于web可访问的目录,可以使整个项目组看到单元测试情况 -->
<junitreport todir="reports">
<fileset dir=".">
<include name="TEST-*.xml"/>
</fileset>
<!-- 带有框架,可以用noframes选不带框架 -->
<report format="frames" todir="reports/html"/>
</junitreport>
</target>
现在运行ant test,看看reports/下面是不是有了生成的单元测试结果的文件了?
如果有问题可以用ant -debug test看看问题出在哪里?
另外更改源程序,让程序通过测试和通不过测试看看生成的结果如何?