テスト関連プラグイン  vol.1
はじめに テスト(主に単体)で使えるプラグインたちをデモを交えて簡単に紹介 役に立つツールがある・・・かも!?
自己紹介 HN ykhr だったり ykhr-kokko だったり お仕事 Java での開発 ちょっと前まで、テスト関連の研究開発をやってました 最近、転職しました 活動 http://d.hatena.ne.jp/ykhr-kokko Choco Project 変なものばかり作ってます ( ゚ー゚ ;A
もくじ 実行系 カバレッジ系 テスト実行支援系 静的テスト系 小物系 その他 ※カテゴリーはかなり適当
実行系 カバレッジ系 テスト実行支援系 静的テスト系 小物系 その他
JUnit  プラグイン JUnit 関連にまつわるプラグイン。 Eclipse に始めから入ってるし、知らない人はいないよね? 機能(主なもの) テストケースの実行・結果表示 テストケースの雛形の作成 実行結果の XML 出力( Eclipse3.3 から)
TestNG TestNG のプラグイン版。 http://testng.org/doc/eclipse.html 機能 JUnit とほぼ同じ View レポートの確認(デフォルトで HTML レポートが出る) ところで、 TestNG をプロジェクトで使ったことある人っている? ぜひ、話を聞いてみたい。
実行系 カバレッジ系 テスト実行支援系 静的テスト系 小物系 その他
djUnit カバレッジを計測するツール。 http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@646A556E6974 機能 カバレッジ計測->レポート出力・マーカー付加 Virtual Mock Object モックによるテストをサポートする機能 カバレッジ系に入れたが、 Virtual Mock Object の機能もいい。 djUnit のテストケースは、そのままでは Ant などから実行できなくなるのが欠点。 JUnit タスクを djunit のタスクに変更する必要がある。 Maven も動かないかも(未確認)。
EclEmma カバレッジツール EMMA のプラグイン版。 http://www.eclemma.org/ ブランチカバレッジの値が出ない( EMMA 自体がブランチを取得していないので)。 個人的に、見た目は一番好き。 ソースの色分け表示がきれい。 1 行のうち、一部しか実行されていない行も区別がつく。
実行系 カバレッジ系 テスト実行支援系 静的テスト系 小物系 その他
Quick JUnit 実装コードとテストコードの切り替えを簡単に行うためのプラグイン。 http://quick-junit.sourceforge.jp/ テストコードを右クリックから実行することもできる。 今の Eclipse は同様のことができるけど、昔はできなかったんだっけ? ショートカットコマンドも備えている。 JUnit プラグインの機能にもショートカットコマンドはあるが、 Alt + Shift + X ってとてつもなく押しにくいと思う。
Continuous Testing テストケースを保存したタイミングでテストを実行するプラグイン。 失敗したテストケースにはエラーのマーカーが付加される。 マーカーからテストを再実行できる。 実行するテストは任意に指定できる。 Eclipse3.1 でしか動かなかった・・・ 最近、更新されている様子もなく、ちょっと残念。 代わりに、テストケースを保存したタイミングでそのテストケースを実行するというプラグインを作ってみました。 コードはほとんどコピペという罠。 逆に言えば、コピペでここまで作れるという例。
実行系 カバレッジ系 テスト実行支援系 静的テスト系 小物系 その他
静的テスト系 静的テストも立派なテスト!というわけで Checkstyle FindBugs PMD 最近は、 Eclipse のコンパイラもけっこういけてる。 フォーマッタ、クリーンアップも ( ・∀・ ) イイ 正直、 Java ファイルを保存するたびに動作するように設定するのはウザい。でも、実装完了するたびに3ツールを動作させるのも(クリックするのが)めんどくさい。 ( Maven とかで)夜間バッチで実行するとか、1クリックで実行できるような仕組みがあった方がいいと思う。
各ツールの違い(ごく簡単に) Checkstyle 設計に関する問題、コードのフォーマットに関する問題のチェックが多い。 ソースファイルに対しチェックを行う。 デフォルトの設定で動作させると、たいていエラー出まくり。 FindBugs API の利用誤りや問題の発生しやすいコードを検出する。 クラスファイルに対しチェックを行う。 PMD FindBugs と同じようなチェック。 ソースファイルに対しチェックを行う。 1 つのツールにしか存在しないチェックルールもある。 本来はチェックの種類を選別するべきだが、デフォルトのまま使用しても効果はあるので、試しに使ってみるのもアリ。 上記 3 ツールは、すべて Maven から実行できる。
実行系 カバレッジ系 テスト実行支援系 静的テスト系 小物系 その他
QuickREx 正規表現のテスト用。 正規表現のライブラリ(サンプル集みたいなもの)が付いている。
XPath-Developer  XPath のテスト用。 ちょっとしたコード補完もできる。 QuickREx と同じプロジェクト。 QuickREx の HP を見ていたらたまたま発見。 なかなかよさげだったので、紹介してみました。
スクラップページ(w Eclipseの機能。 回りで使っているという話はあまり聞かない ちょっとマイナー? テストというとちょっと大げさだけどね。
実行系 カバレッジ系 テスト実行支援系 静的テスト系 小物系 その他
Eclipse TPTP \ (^o^) / 間に合いませんでした  orz ごめんなさい  m(_ _)m 使ったことある方いませんか??
Eclipse TPTP さくっと調べた感じだと・・・ プロファイリング ログの分析 レポートの表示
Jumble Mutation Testing(変異テスト)を行うツール。 Mutation Testing:テスト対象を書き換えてテストケースを実行し、テストケースがきちんと失敗するかを検証する。テストケースがきちんと実装できているかを確認できる。 プラグイン版は、実行をラップしてるだけの簡易的なもの。 でも、プラグインから実行できるというのは大きいよね。 対応しているテストケースは、JUnit3系のみ。
おまけ ちょっとだけ。
おまけ1 JUnit Reporter (Choco Project) JUnit の実行結果から、 HTML レポートを出力するプラグイン。 HTML レポートは、 Ant の JUnitReport タスクと同じものを出力する。 Eclipse3.2 系でしか動作しません(更新サボってます)。 プラグインは、人様の View に勝手に機能を追加できたりします。
おまけ2 JUnit 関連のプラグインの拡張ポイント org.eclipse.jdt.junit.testRunListeners   テストの開始、終了が検知できる。 Eclipse 3.3 から deprecated となったが、これを使わなくても自分でリスナーを追加できる。 JUnitCore#addTestRunListener(TestRunListener) テストの結果は取得できない( internal 系を使うと取得できるはず・・・)。 org.eclipse.jdt.junit.junitLaunchConfigs リファクタリングされた際に、更新する必要のある JUnit ベースの起動構成を登録する??? よくわかりませんでした。 たいした拡張ポイントではない。
おわりに テスト関連といっても幅広いので、プラグインはたくさんあります。 プラグインを入れすぎると大変なことになります(なりました)。自分の好みのプラグインを選択するべし。 足りないものがあれば、案外簡単に作れちゃうのかも!? 他にもこんなのあるよーという方がいましたら、教えてください。

Test Plugins