首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ant + JUnit 實現自動化測試與報告郵件通知

     編輯:Java 相關知識

隨著重構與 XP 實踐普及,單元測試成為軟體品質基石。JUnit 是 Java 生態事實標準,但將其整合進自動化建置流程、生成報告並通知團隊,仍需工程化腳本支援。本文提供完整 Ant 腳本範例。

完整 build.xml

<?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> 任務)

前置條件

  1. 將 junit.jar 放入 ANT_HOME/lib
  2. 準備 email.bat 或配置 Ant <mail> 任務實現郵件發送
  3. 測試類需提供 public static Test suite() 靜態方法(如 test.AllTests)

進階擴展建議

  • 分散式測試:配合 <parallel> 在多機器並行執行
  • 程式碼覆蓋率:整合 JaCoCo/Cobertura 生成覆蓋率報告
  • 持續整合:作為 Jenkins/GitLab CI 的建置步驟
  • 失敗快照:測試失敗時自動截圖或導出日誌

此腳本提供「檢出→編譯→測試→報告→通知」完整閉環,可直接適配至專案持續整合流水線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved