tips/eclipse/plugin開発/JUnit プラグインテスト/プラグインテスト構成の tips の変更点


#navi(../../)

* JUnit プラグインテスト : プラグインテスト構成の tips [#qf356874]


eclipse プラグインを利用したアプリケーションを作成する場合、
プラグイン環境の配下で JUnit テストドライバを起動するため
プラグイン環境の配下で JUnit テストケースを起動するため
JUnit プラグインテストを用いることになります。~
しかし慣れていないと思わぬところでつまづいて、
起動することすらままなりませんでした。

以下、簡単に気をつけるべき点を。。。


** テストドライバ クラスが見つからない(ClassNotFoundException が発生) [#k1f291c9]
** テストケース クラスが見つからない(ClassNotFoundException が発生) [#k1f291c9]

とりあえず何も考えずにテストドライバクラスのファイル
とりあえず何も考えずにテストケースクラスのファイル
(***Test.java)を選択して JUnit プラグインテストを実行。。。~
すると ClassNotFoundException が。
テストドライバのクラスが見つからないとのこと。
テストケースのクラスが見つからないとのこと。

プラグインマニフェストエディタでは、
「ランタイム」タブの「エクスポートされるパッケージ」に
ちゃんとテストドライバのあるパッケージを指定したのに。
ちゃんとテストケースクラスのあるパッケージを指定したのに。

で、いろいろ見てみて気づいたのが。。。~
自分の場合、プロジェクトのソースフォルダを

- src/main/java
- src/test/java

の二つに分けていました。(maven 2.0 のデフォルトにあわせて)。~
そして src/test/java の方はプラグインマニフェストエディタの
「ビルド」->「ランタイム情報」で外部に公開するフォルダに設定していなかったのです。

#ref(build-runtime.png)

src/test/java もランタイム情報に追加して再度 JUnit テストを実行してみると、
今度は ClassNotFoundException は発生しません。

ところが。。。


** 何も実行されず終了する [#s1683f7c]

今度はテストケースがひとつも実行されずに終了してしまいました。~
コンソールにも何も表示されません。~
(テストドライバで出力するようにしていたログすら表示されない)。
(テストケースクラスで出力するようにしていたログすら表示されない)。

これまたいろいろ調べたのですが一向に原因が分からない。~
自分の環境だけで調べてもらちがあかないので、ウェブ上でも検索。
すると、いつもプラグイン開発の参考にさせていただいている きのさいと さんにこんな記述が。

[[きのさいと:Eclipse/プラグイン開発のTIPS集/GooglePlugin/まずはCoreをつくる#g8f7e6c8]]

JUnit プラグインテストの手順を順に追っていくと、
必須プラグインに org.junit を追加している。。。

いまいちピンとこないながらも同じように依存関係の必須プラグインに org.junit を追加すると、、、~
何事もなかったかのようにテストが無事実行されました!!

org.junit を追加しなければならないなんて、ヘルプにでも書いてあったかな。。。
それにしても、せめて org.junit が必要ならエラーのひとつも出してくれればいいのに。~
何も言わずに正常終了するとは。

** 起動を速く [#bcb2a413]

ようやく JUnit プラグインテストを実行することができるようになりましたが、
やはり(当たり前と言えば当たり前ですが)Eclipse プラットフォームをもうひとつ立ち上げるわけで、
どうしても起動に時間がかかります。

それでも、テストに不要なプラグインの読み込みをしなければ、
結構起動は速くなります。

「実行」ダイアログの「プラグイン」タブで「以下で選択したプラグインのみ」を選び、
下のプラグイン一覧で必要なプラグインだけ選びます。~
実際に一つ一つ選択するのは手間なので、
一度選択をすべてはずしてから、「必須プラグインの追加」をすると簡単です。

結構これで起動が速くなります。

#ref(dialog_execution.png)