Quick JUnit Notification Pluginその2

カッとなって作ってしまった。


やっぱ色変わらないとダメっすよね。REDとGREENは作ってみたけれども、もう一色なんか欲しいですよね。どうしたらいいんでそ。あと、アイコンももうちょっとなんとかできる気が。
http://quick-junit.sourceforge.jp/updates/dev/
からインストールできるっす。

追記

Eclipse 3.5以降であれば、Mylynのアップデートも行われますが、Quick JUnit Notification Pluginもお使いいただけます。

Quick JUnit Notification Plugin

JUnitの実行結果をGrowlがなくても、画面に通知するようにしてみましたよ。

Mylynの3.6が入っていれば動くはず。(Eclipse 3.7には標準添付っす。)
http://quick-junit.sourceforge.jp/updates/dev/
からインストールできます。
Growlとかみたいに、きめ細やかな設定ができないのがちょとつらいですが、よかったらどーぞ。

上記フィーチャーです。

Quick JUnitの次期リリース版(0.6.0)の機能まとめ

Quick JUnitの0.6.0を近くリリースする予定です。どんな機能なのか、ここで簡単に紹介したいと思います。EclipseでいうNew and Noteworthyです。リリース候補版を http://quick-junit.sourceforge.jp/updates/beta/ で公開しています。リリース候補版ですが、特に問題なければこのまま正式版として配布する予定です。

Quick JUnitのアイコン

まず大事な事から。このはてダで投票して頂いていたQuick JUnitのアイコンについてです。

このアイコンは@さんが描かれたアイコンです。@さんのアイコンをベースに、少し手直しをして頂きました。応募してくださった@さん、@さん、@さん、@さんありがとうございました。後日何らかの形でお礼をさせていただくつもりです。ありがとうございました。
では機能面を見ていきましょう。

Quick JUnitのビルド・テスト自動化に取り組み始めました。

長らく懸案であった、Quick JUnitのビルド・テストの自動化に取り組み始めました。環境はhttp://kompiro.dyndns-server.com/hudson/job/Quick%20JUnit%20CI/で公開しています。テストの件数は少ないですが、少しずつ追記しています。テストの作成にご興味のある方はquick-junit-devel@lists.sourceforge.jpまで名乗りを上げてくだされば、と思います。

新Feature


元々のQuick JUnitの機能は、小さくてもぴりりと効くFeatureのため、今回のリリースでもそんな機能を追加しています。例えば今年の夏に取り組んだテスト実行後にGrowlに通知したり、別途プロセスを立ち上げるFeatureもexperimentalとして公開しています。(どちらのFeatureも僕は常用しています。)また、Mockito integrationはexperimentalを卒業し、Mainに格上げしました。

コンテントアシスト「Q」を本体に組み込み

Mockitoと連携するために組み込んだ「Q」ですが、使い勝手が良いので本体に組み込みました。ただし、Mockito Integrationは別のFeatureに分離しているため、自動で行っていたstatic importの宣言は除いています。その代わり、次の機能を追加しました。

テストでよく使うstaticメソッドをFavoriteに追加


EclipseのPreference PageにはFavoritesという項目があります。ここにstatic importしたいクラスやメソッドを記述すると、コンテントアシスト時に補完してくれます。下記のように補完ができてとても便利です。

僕がこの他によく設定するのはjava.lang.String.formatだったりします。

コンテントアシストの追加

テストを書きやすいように、下記のコンテントアシストを追加しました。これらのコンテントアシストはjunit.extensions.eclipse.quick.template.featureで追加できます。

A:@Afterメソッドを追加する

B:@Beforeメソッドを追加する

AC:@AfterClassメソッドを追加する

BC:@BeforeClassメソッドを追加する

AT:assertThatメソッドを追加する



初期値は直近のローカル変数とexpectedという名前をisで等値比較しています。タブキーでexpectedに飛べるので大抵はカーソルキー触らずにassertThat書けます。

Quick JUnitソースコードFeatureの公開

このビルド・テストの自動化では、Buckminsterを用いています。Eclipse Pluginのビルド・テストプロセスは複雑なのですが、Buckminsterを用いる事で幾分か単純になっています。その二次的な効果ですが、Quick JUnitソースコードも別Featureで配布する事ができています。Quick JUnitのソフトウェアサイトからダウンロードしてください。

と言う事で駆け足ですがざっと今回のQuick JUnitの拡張をまとめました。是非お試しを〜。では。

Launch 実行時のデフォルト値設定拡張の設計メモ

求める機能

Launch時にデフォルト値を設定したい。

目的

JUnit実行時に、時々デフォルト値を設定したい事がある。

例えば
  • PDE実行時に合わせて起動するBundleの設定
  • テスト実行に必要な引数
  • GWTの実行に必要な引数

やってみるときどうしていたか?

  • VMのデフォルト引数に追加していた

調べてみた

  • 実行ランチャが実装されているプラグインは、org.eclipse.debug.ui
  • ILaunchConfigurationType : ランチャの種別(Java Applicationとか、Java Appletとか、JUnitとか。実行設定画面の左枠の親要素)
    • ランチャの設定タブは、ILaunchConfigurationType毎に作る。
    • ランチャの設定タブに関する拡張ポイントはいくつか
      • org.eclipse.debug.ui.launchConfigurationTabs : ランチャの種別毎の設定タブに一つ以上のタブを追加
      • org.eclipse.debug.ui.launchConfigurationTabGroups : ランチャの種別毎の設定タブそのもの。一つだけしか作れない?
  • ILaunchConfiguration : 各ランチャ要素。それぞれ独立して設定されている。

方針

  • とりあえずランチャグループからタブをコピーしてプロジェクトのプロパティにはめたが微妙
  • ランチャ種別毎に小さなプラグインを用意して、デフォルトの引数を追加するような方が良さげ。
  • Quick JUnitは起動するランチャ種別を指定できるようにすると良さげ。
    • これできたらJUnit以外のテストも簡単に実行できる。

Quick JUnitアイコン投票所

たくさんのご応募ありがとうございました。
8月末でQuick JUnitの新バージョンをリリースしようと考えていたのですが、作業が滞って報告が遅れました。
全部で7つの応募がありました。この中からアイコンを使いたいと思うのですが、僕だけで決めるのは変なので、9/30までにtwitterで#quickjunitをつけてつぶやいてくか、この日記にコメントしてください。気づき次第追記していきます。
1.
2.
3.
4.
5.
6.
7.

それでは投票よろしくお願いします。大事な事なので繰り返しますが、期限は9/30までにしたいと思います。

Quick JUnitとは

平鍋さんがツイートしてくださったので引用します。


Quick JUnitプロジェクトの詳細はプロジェクトのページを参照してください。
また岡本さんは@ITに記事を書いてくださっていますのでこちらも合わせてどうぞ。

Windowsでテスト実行直後に結果をGrowlみたいなポップアップ表示する

JUnit実行後にプロセスに通知するプラグイン - Fly me to the Juno!で作ったプラグインは、Windowsでも動作しました。最初Growl for Windowsを試してみたのですが、短時間で何度も通知を表示させようとしたところ、うまく表示させられませんでした。Growlには通知された履歴が残っているので、通知自体はうまくいっているようなのですが、連続して通知すると、まとめて表示してくれるような仕組みがあるようなのです。でも今回のように毎回表示させたいときにはどうすればいいのかわからなかった!

そこでSnarlという通知システムを使って通知環境を作ってみた。通知されるとこんな感じ。

Snarlにはコマンドラインで呼び出せるexeは同梱されていません。なので、別途配布されているものをダウンロードし、下記の設定を行いました。

C:\Snarl_CMD_1.0\Snarl_CMD.exe snShowMessage 2 "${summary}" "${detail}"

お試しをー。

JUnit実行後にプロセスに通知するプラグイン

Mac OSXのGrowl以外の通知システムにもテスト結果を通知できたらなぁ、なんて妄想してましたが、テスト終了後に通知するプロセスを立ち上げれば何とかなるんではないかと思い、プラグインを作成しました。

プロセスの設定画面

Growlに通知した例

notify-sendでUbuntuのNotifyOSDに通知した例

notify-sendの設定をしたプロセスの例
/usr/bin/notify-send -i /home/kompiro/eclipse/icon.xpm ${summary} ${detail}

notify-sendの引数-iは、アイコンを指定するやつです。なので、適宜/home/kompiro/eclipse/icon.xpmを適当なアイコンファイルへ差し替えてください。で、その他の置換文字列について簡単に説明をば。

${summary}とは

テスト結果のサマリです。「Quick JUnit Test OK」「Quick JUnit Test FAILURE」「Quick JUnit Test ERROR」の3種類が指定されます。

${detail}とは

テスト結果の詳細です。パスした件数、失敗した件数等、件数が入っています。



このプラグイン、実は起動するプロセスにシェルやらバッチやらスクリプトファイルを指定できると思うので、応用がものすごく効きます。少し前にテスト結果をXMLに保存する、なんていうプラグインがありましたが、このプラグインを使っても実現できそうです。