28
テテテテテテテテテテ vol.1

Test Plugins

  • Upload
    ykhr

  • View
    1.757

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Test Plugins

テスト関連プラグイン vol.1

Page 2: Test Plugins

2

はじめに

テスト(主に単体)で使えるプラグインたちをデモを交えて簡単に紹介

役に立つツールがある・・・かも!?

Page 3: Test Plugins

3

自己紹介

HN ykhr だったり ykhr-kokko だったり

お仕事 Java での開発 ちょっと前まで、テスト関連の研究開発をやってま

した 最近、転職しました

活動 http://d.hatena.ne.jp/ykhr-kokko Choco Project

• 変なものばかり作ってます ( ゚ー゚ ;A

Page 4: Test Plugins

4

もくじ

1. 実行系2. カバレッジ系3. テスト実行支援系4. 静的テスト系5. 小物系6. その他

※カテゴリーはかなり適当

Page 5: Test Plugins

5

1. 実行系2. カバレッジ系3. テスト実行支援系4. 静的テスト系5. 小物系6. その他

Page 6: Test Plugins

6

JUnit プラグイン

JUnit 関連にまつわるプラグイン。 Eclipse に始めから入ってるし、知らない人はい

ないよね?

機能(主なもの) テストケースの実行・結果表示 テストケースの雛形の作成 実行結果の XML 出力( Eclipse3.3 から)

Page 7: Test Plugins

7

TestNG

TestNG のプラグイン版。 http://testng.org/doc/eclipse.html 機能

JUnit とほぼ同じ View レポートの確認(デフォルトで HTML レポートが出

る)

ところで、 TestNG をプロジェクトで使ったことある人っている? ぜひ、話を聞いてみたい。

Page 8: Test Plugins

8

1. 実行系2. カバレッジ系3. テスト実行支援系4. 静的テスト系5. 小物系6. その他

Page 9: Test Plugins

9

djUnit

カバレッジを計測するツール。 http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@646A5

56E6974 機能

カバレッジ計測→レポート出力・マーカー付加 Virtual Mock Object

• モックによるテストをサポートする機能

カバレッジ系に入れたが、 Virtual Mock Object の機能もいい。

djUnit のテストケースは、そのままでは Ant などから実行できなくなるのが欠点。 JUnit タスクを djunit のタスクに変更する必要がある。 Maven も動かないかも(未確認)。

Page 10: Test Plugins

10

EclEmma

カバレッジツール EMMA のプラグイン版。 http://www.eclemma.org/

ブランチカバレッジの値が出ない( EMMA 自体がブランチを取得していないので)。

個人的に、見た目は一番好き。 ソースの色分け表示がきれい。 1 行のうち、一部しか実行されていない行も区別が

つく。

Page 11: Test Plugins

11

1. 実行系2. カバレッジ系3. テスト実行支援系4. 静的テスト系5. 小物系6. その他

Page 12: Test Plugins

12

Quick JUnit

実装コードとテストコードの切り替えを簡単に行うためのプラグイン。

http://quick-junit.sourceforge.jp/

テストコードを右クリックから実行することもできる。 今の Eclipse は同様のことができるけど、昔はでき

なかったんだっけ?

ショートカットコマンドも備えている。 JUnit プラグインの機能にもショートカットコマンド

はあるが、 Alt + Shift + X ってとてつもなく押しにくいと思う。

Page 13: Test Plugins

13

Continuous Testing

テストケースを保存したタイミングでテストを実行するプラグイン。 失敗したテストケースにはエラーのマーカーが付加される。 マーカーからテストを再実行できる。 実行するテストは任意に指定できる。

Eclipse3.1でしか動かなかった・・・ 最近、更新されている様子もなく、ちょっと残念。

代わりに、テストケースを保存したタイミングでそのテストケースを実行するというプラグインを作ってみました。

• コードはほとんどコピペという罠。• 逆に言えば、コピペでここまで作れるという例。

Page 14: Test Plugins

14

1. 実行系2. カバレッジ系3. テスト実行支援系4. 静的テスト系5. 小物系6. その他

Page 15: Test Plugins

15

静的テスト系

静的テストも立派なテスト!というわけで Checkstyle FindBugs PMD 最近は、 Eclipse のコンパイラもけっこういけてる。

• フォーマッタ、クリーンアップも ( ∀・ ・ ) イイ

正直、 Java ファイルを保存するたびに動作するように設定するのはウザい。でも、実装完了するたびに3ツールを動作させるのも(クリックするのが)めんどくさい。

• ( Maven とかで)夜間バッチで実行するとか、1クリックで実行できるような仕組みがあった方がいいと思う。

Page 16: Test Plugins

16

各ツールの違い(ごく簡単に)

Checkstyle 設計に関する問題、コードのフォーマットに関する問題のチェックが

多い。 ソースファイルに対しチェックを行う。 デフォルトの設定で動作させると、たいていエラー出まくり。

FindBugs API の利用誤りや問題の発生しやすいコードを検出する。 クラスファイルに対しチェックを行う。

PMD FindBugs と同じようなチェック。 ソースファイルに対しチェックを行う。

1つのツールにしか存在しないチェックルールもある。 本来はチェックの種類を選別するべきだが、デフォルトのまま使用しても効果はあるので、試しに使ってみるのもアリ。

上記 3ツールは、すべてMavenから実行できる。

Page 17: Test Plugins

17

1. 実行系2. カバレッジ系3. テスト実行支援系4. 静的テスト系5. 小物系6. その他

Page 18: Test Plugins

18

QuickREx

正規表現のテスト用。正規表現のライブラリ(サンプル集みたいなもの)が付いている。

Page 19: Test Plugins

19

XPath-Developer

XPath のテスト用。 ちょっとしたコード補完もできる。 QuickREx と同じプロジェクト。

QuickREx の HP を見ていたらたまたま発見。 なかなかよさげだったので、紹介してみました。

Page 20: Test Plugins

20

スクラップページ(w

Eclipseの機能。

回りで使っているという話はあまり聞かない ちょっとマイナー?

テストというとちょっと大げさだけどね。

Page 21: Test Plugins

21

1. 実行系2. カバレッジ系3. テスト実行支援系4. 静的テスト系5. 小物系6. その他

Page 22: Test Plugins

22

Eclipse TPTP

\ (^o^) /間に合いませんでした orzごめんなさい m(_ _)m

使ったことある方いませんか??

Page 23: Test Plugins

23

Eclipse TPTP

さくっと調べた感じだと・・・ プロファイリング ログの分析 レポートの表示

Page 24: Test Plugins

24

Jumble

Mutation Testing(変異テスト)を行うツール。 Mutation Testing:テスト対象を書き換えてテストケースを実行し、テストケースがきちんと失敗するかを検証する。テストケースがきちんと実装できているかを確認できる。

プラグイン版は、実行をラップしてるだけの簡易的なもの。 でも、プラグインから実行できるというのは大きいよね。

対応しているテストケースは、 JUnit3系のみ。

Page 25: Test Plugins

25

おまけ

ちょっとだけ。

Page 26: Test Plugins

26

おまけ1

JUnit Reporter (Choco Project) JUnit の実行結果から、 HTML レポートを出力するプラグイン。 HTML レポートは、 Ant の JUnitReport タスクと同じものを出力

する。• Eclipse3.2 系でしか動作しません(更新サボってます)。

プラグインは、人様の View に勝手に機能を追加できたりします。

Page 27: Test Plugins

27

おまけ2

JUnit 関連のプラグインの拡張ポイント org.eclipse.jdt.junit.testRunListeners

• テストの開始、終了が検知できる。• Eclipse 3.3 から deprecated となったが、これを使わなくて

も自分でリスナーを追加できる。– JUnitCore#addTestRunListener(TestRunListener)

• テストの結果は取得できない( internal 系を使うと取得できるはず・・・)。

org.eclipse.jdt.junit.junitLaunchConfigs• リファクタリングされた際に、更新する必要のある JUnitベースの起動構成を登録する???

• よくわかりませんでした。

たいした拡張ポイントではない。

Page 28: Test Plugins

28

おわりに

テスト関連といっても幅広いので、プラグインはたくさんあります。

プラグインを入れすぎると大変なことになります(なりました)。自分の好みのプラグインを選択するべし。

足りないものがあれば、案外簡単に作れちゃうのかも!?

他にもこんなのあるよーという方がいましたら、教えてください。