よしだのブログ

サブタイトルはありません。

ant で JUnit のテスト結果をHTMLで出力する

前回の続きです~。
[java] ant の junit でテストクラスの ClassNotFoundException が出る場合の対処法。 - よしだのブログ

ant で JUnit を回せるようになると、今度はテストの履歴を残すようにしたくなりますよね?というわけで、テスト結果をHTMLで吐き出すように変更しました。結合テスト用の war ファイルビルド前に、勝手に実行するように組み込むといい感じです。なお、注意点としては、formatter type をかならず xml にする必要があります。

     <!-- 【単体テスト】-->
     <target name="unittest">
        <mkdir dir="report" />
          <junit printsummary="true">
               <formatter type="xml" />
               <classpath>
                    <pathelement path="build/classes"/>
                    <!-- Tomcatライブラリ -->
                    <fileset dir="${tomcat-home}/lib">
                         <include name="*.jar" />
                    </fileset>
                    <!-- プロジェクトライブラリ -->
                    <fileset dir="lib">
                         <include name="*.jar" />
                         <exclude name="esp4j-client.jar" />
                    </fileset>
                    <!-- Web専用ライブラリ -->
                    <fileset dir="src/webapp/WEB-INF/lib">
                         <include name="*.jar" />
                    </fileset>
               </classpath>
               <batchtest fork="yes" todir="report">
                    <fileset dir="src/custom/test">
                         <include name="**/*Test.java"/>
                         <exclude name="**/TestAll.java"/>
                    </fileset>
               </batchtest>
          </junit>
          
          <!-- ★JUnitの結果をエクスポートしたXMLをHTMLにまとめる。★-->
          <junitreport todir="report">
            <fileset dir="report">
              <include name="TEST-*.xml"/>
            </fileset>
            <report format="frames" todir="report/html"/>
          </junitreport>
     </target>

さらに、JUnitReportEx を使うと、結果レポートにテストケースの JavaDoc コメントが出力されるので、どんなテストに対する結果なのか JavaDoc を見れば分かるようになるので更に幸せになれます。
歪(2006-11-13)


今どきのエンジニアは Jenkins でも立ててCIするんでしょうけども、お手軽に品質アップを狙うのに ant はいいんでは無いでしょうか?build.xml がどんどん大きくなってきたので、Grails に移行したいな。。

ご参考までに。