単体試験項目表をFindBugs/Ant/Javadocで作ろう:おじどうくんUT5

FindBugsを使うとソースコードをいろいろ静的に解析してくれてとても便利です。

しかしバグを取り切るとFindBugsの出力結果はこんな感じになります。

すんげー味気ねぇー

バグ取りには適しているのでしょうが、どうにも単体試験項目表っぽくありません。
そこで、JavaDocを使用してソースコードから単体試験項目表を生成し、 全体で何件評価項目があるのか(要はメソッド等合わせて何件か?)、ということが見た目で分かるようにしてみました。

これを用いればいかにも試験をやったかのように試験項目数を水増しできるぜ。(いや実際やってんねんで)
そう、それっぽいガラがありさえすればいいのだ。(いや実際やってんねんで)

これによって出てくる 単体試験項目表はこんな感じです。
もっと表っぽくしたいのであれば、 単体試験項目表はこんな感じにでも出力します。 こちらは画面を目いっぱい広げてからコピーし、excelに張り付けるような用途を想定して作成しています。

使い方(Antの書き方)

まずは適当にコードを書いてください。当然JavaDocのコメント付きで。

    /**
     * Hello world message
     */
    public void hello() {
        System.out.println("hello world!");
    }

こんな感じでまずFindBugsを実行して bcel-fb.xml を出力してください。

    <findbugs home="${findbugs.home}"
        jvmargs="-Duser.language=en"
        output="xml"
        outputFile="./target/findbugs/bcel-fb.xml" >
       <auxClasspath refid="common.classpath" />
       <sourcePath path="./src/main/java" />
       <class location="lib/UT5DocLet.jar" />
    </findbugs>

次に、javadocを使って単体試験項目表を作成します。
※当然ですが、これを使うにはこのページからダウンロードしたUT5DocLet.jarが必要です。

    <delete dir="./target/ut5" />
    <mkdir dir="./target/ut5" />
    <javadoc destdir="./target/ut5"
      encoding="MS932" docencoding="MS932"
      additionalparam="-J-Dfile.encoding=MS932"
      charset="Shift_JIS">
      <classpath refid="common.classpath" />
      <packageset dir="src/main/java">
          <include name="jp/**" />
      </packageset>
      <doclet name="jp.ruru.park.ando.ut5.UT5Doclet" path="lib/UT5DocLet.jar">
        <param name="-findbugs" value="target/findbugs/bcel-fb.xml" />
      </doclet>
    </javadoc>