すべてのテストを実施する

AntからJUnitを起動させたときに、デフォルトではエラーないし失敗があるとビルドプロセスが終了してしまう。
しかしテストレポートは作成したいし、そもそもすべてのテストを実施しておきたい。

なので、

  1. "haltonerror""haltonfailure"を指定することで、エラーが発生してもプロセスが終了しないようにする
  2. "errorproperty""failureproperty"でエラーの時にプロパティを設定する

  <!-- do tests! -->
  <junit
      fork="yes"
      haltonfailure="false"
      haltonerror="false"
      errorproperty="TEST.ERROR"
      failureproperty="TEST.FAILURE"
      printsummary="on">
      <classpath>
       <pathelement location="${CLASSES.DIR}"/>
       <fileset dir="${LIB.DIR}">
        <include name="*.*"/>
       </fileset>
       <pathelement path="PATH.LIB"/>
      </classpath>
      <formatter type="xml" usefile="true"/>
      <batchtest todir="${RESULTS.DIR}">
       <fileset dir="${CLASSES.DIR}" includes="**/*Test.java"/>
      </batchtest>
  </junit>
  <!-- create report! -->
  <junitreport
       todir="${REPORTS.DIR}">
       <fileset dir="${RESULTS.DIR}">
        <include name="*.xml"/>
       </fileset>
       <report format="frames"
           todir="${REPORTS.DIR}"/>
  </junitreport>

このままだとビルドプロセスが常に成功してしまうため、エラープロパティが設定されていたらfailにする。

  <fail
    if="JUNIT.ERROR"
    message="error wwwwwww"/>
  <fail
    if="JUNIT.FAILURE"
    message="failure wwwwwwww"/>

これで毎回すべてのテストレポートを見ることができる(コンパイルエラーが発生したときは無理だが・・・)。