隨著重構與 XP 實踐普及,單元測試成為軟體品質基石。JUnit 是 Java 生態事實標準,但將其整合進自動化建置流程、生成報告並通知團隊,仍需工程化腳本支援。本文提供完整 Ant 腳本範例。
<?xml version="1.0" encoding="gb2312"?>
<project name="test" default="build" basedir=".">
<property environment="env"/>
<property name="j2ee" value="env.j2ee_home"/>
<property name="base.dir" value="."/>
<property name="src" value="${base.dir}/test"/>
<property name="classes" value="${base.dir}/defaultroot/WEB-INF/classes"/>
<property name="lib" value="${base.dir}/lib"/>
<path id="appclasspath">
<pathelement path="${java.class.path}"/>
<fileset dir="${base.dir}/defaultroot/WEB-INF/lib"><include name="*.jar"/></fileset>
<pathelement location="${base.dir}/defaultroot/WEB-INF/classes"/>
<pathelement location="D:/j2sdkee1.3.1/lib/j2ee.jar"/>
</path>
<target name="init">
<tstamp/>
<mkdir dir="${classes}"/>
</target>
<target name="compiletest" depends="init">
<javac srcdir="${src}" destdir="${classes}" debug="off">
<classpath refid="appclasspath"/>
<include name="**/*.java"/>
</javac>
</target>
<target name="run">
<junit>
<classpath refid="appclasspath"/>
<classpath><pathelement location="${base.dir}/defaultroot/WEB-INF/classes"/></classpath>
<formatter type="xml"/>
<test name="test.AllTests" haltonfailure="no" outfile="result"/>
</junit>
<junitreport todir="./report">
<fileset dir="."><include name="result.xml"/></fileset>
<report format="noframes" todir="./report"/>
</junitreport>
</target>
<target name="build" depends="compiletest,run">
<tstamp/>
<exec executable="${base.dir}/email.bat"/>
</target>
</project>
| 任務 | 用途 |
|---|---|
<junit> | 執行測試套件,haltonfailure="no" 確保全部執行完畢 |
<formatter type="xml"/> | 輸出 XML 格式結果,供後續報告生成 |
<junitreport> | 將 XML 轉換為 HTML 報告(支援 frames/noframes) |
<exec executable="email.bat"/> | 調用外部腳本發送報告郵件(可替換為 Ant <mail> 任務) |
junit.jar 放入 ANT_HOME/libemail.bat 或配置 Ant <mail> 任務實現郵件發送public static Test suite() 靜態方法(如 test.AllTests)<parallel> 在多機器並行執行此腳本提供「檢出→編譯→測試→報告→通知」完整閉環,可直接適配至專案持續整合流水線。