minimize

では、QALabの使い方です。
あらかじめ、チェック結果をXMLとして出力しておく必要があります。
参照ページ : CheckstyleをAntから使用する

taskdefの記述

Antを利用します。まず、build.xmlでQALab要素を使えるようにするために
以下を記述します。

<taskdef name="mergestat" classname="net.objectlab.qalab.ant.BuildStatMergeTask">
  <classpath>
    <pathelement location="${lib}/qalab-0.7.2.jar" /> 
    <pathelement location="${lib}/xercesImpl-2.6.2.jar" /> 
    <pathelement location="${lib}/jcommon-0.9.6.jar" /> 
    <pathelement location="${lib}/jfreechart-0.9.21.jar" /> 
    <pathelement location="${lib}/log4j.jar" /> 
  </classpath>
 </taskdef>

各種パスの位置は環境に応じて変更して下さい。

xercesImpl

Tomcatなどに付属しているので、それを使えば良いでしょう。

jfreechart

http://www.jfree.org/jfreechart/ からダウンロードします。

jcommon

http://www.jfree.org/jcommon/ からダウンロードします。
jfreechartをダウンロードすれば一緒に付いています。

log4j

http://logging.apache.org/ からダウンロードします。

各種ライブラリのバージョンは上記と異なっていても構いません。
最新のものを使っていれば問題無いはずです。

qalab.xml への出力

Checkstyle等から出力されたチェック結果xmlファイルを用意します。
そしたら、以下の要素をbuild.xmlに記述しましょう。

<tstamp>
  <format property="TIME" pattern="yyyy-MM-dd HH:mm:ss"/>
</tstamp>

<mergestat inputFile="${doc}/checkstyle-output.xml" 
           outputFile="qalab.xml" 
           srcDir="${java.src.dir}" 
           handler="net.objectlab.qalab.parser.CheckstyleStatMerge" 
           mergerTimeStamp="${TIME}"/> 

mergestat#inputFile で指定したファイルからチェック結果を取得して
mergestat#outputFile で指定したQALab用履歴ファイルに追加出力します。
なお、履歴ファイルは存在しなければ新規で作成されますので
事前のファイル生成は必要ありません。

mergestat#handler は、Checkstyle以外のチェック結果を利用するときは
それに応じて変更します。
複数のチェック結果をqalab.xmlに追加したい場合は、
mergestat 要素を複数用意することになります。

グラフの出力

さて、上でqalab.xmlへの出力が完了したら
いよいよそれを元にHTMLを生成することにします。
これもいたって簡単です。
まずは、HTMLで使用するグラフを生成しましょう。

<taskdef name="buildchart" classname="net.objectlab.qalab.ant.BuildStatChartTask">
  <classpath>
    <pathelement location="${lib}/qalab-0.7.2.jar" /> 
    <pathelement location="${lib}/xercesImpl-2.6.2.jar" /> 
    <pathelement location="${lib}/jcommon-0.9.6.jar" /> 
    <pathelement location="${lib}/jfreechart-0.9.21.jar" /> 
    <pathelement location="${lib}/log4j.jar" /> 
  </classpath>
</taskdef>
<buildchart inputFile="qalab.xml" 
            toDir="${doc}/style/charts" 
            width="500" height="333" 
            summaryOnly="false" 
            type="checkstyle" 
            quiet="true"/>

buildchart#toDir で指定したディレクトリに、各種グラフが生成されます。
Javaファイル毎に画像ファイルが作られるので、ファイルが多いときは
結構な時間が掛かるかもしれません。

buildchart#type には、使用するライブラリをカンマ区切りで指定します。
checkstyle / pmd / simian / findbugs / cobertura-line / cobertura-branch
が使用できます。

HTMLへの出力

グラフを作成したら、最後にHTMLを生成しましょう。

<tstamp>
  <format property="TIME" pattern="yyyy-MM-dd" offset="-48" unit="hour"/>
</tstamp>
<style in="qalab.xml" out="hist.html" style="qalab-chart-html.xsl">
  <param name="basedir" expression="${src.dir}"/>
  <param name="module_srcdir" expression="src"/>
  <param name="type" expression="checkstyle"/>
  <param name="offset" expression="${TIME}"/>
</style>

qalab-chart-html.xsl は、QALabバイナリにサンプルが用意されているので
これを使います。

checkstyleのページでも説明したように、
style#out で指定したファイルには何も出力されません。
実際に使用するファイルは history.html になります。

format#offset が-48となっているのは間違いではありません。
これによって、HTMLファイルに「過去2日分の履歴」が出力されることになります。
ここらへんの詳細はxslファイルを見てみるとわかると思います。

[コメント(0)]