目次Eclipse開発で1番.........いや、2番ぐらい?いや、1番かな.........?まぁ、それぐらい困るのがどうやってJUnitテストすれば良いのかわかりにくいこと。Eclipseのプラットフォーム(OSGi)が絡んでいなければ、個別にテストできるけど、他のプラグインを利用しているなどプラットフォームが絡んでくると、テストが出来ないと言うことになる。ただでさえEclipse開発なんて手探りなのに、テストのやり方が分からなくて、出来る範囲だけでやってたら、大量の未テスト項目が出来てしまって呆然としております。そんなことにならないように、皆さんは最初からテストの作り方を知っておきましょう。調べるといろんなやり方があるというか、私も何が正しいのか分かっていないので、現状のnodamushiのやり方を紹介するだけです。ちなみに、これ書いてる今もGUI操作を伴うテスト方法とか分かってないので、誰か教えて下さい。Eclipseプラグインをテストするプロジェクトを別に作るMavenとかでプロジェクトを作ると「src/main」と「src/test」のように一つのプロジェクトの中にテストを配置するように作られますが、Eclipseプラグインテストをする際はこれでは不都合があります。それは拡張ポイントのテストが出来ないことです。1つのEclipseプラグインに複数のplugin.xmlを配置することが出来ないからです。従って、Eclipseプラグインのテストは、本体とは別にもう一つプラグインを作る必要があります。ここでは例として次のようなプロジェクトのテストをしてみたいと思います。NodamushiImplは以下のような実装になっています。getPluginIDメソッドで無駄にBundleをActivatorから取得しており、バンドルが起動していないとヌルポになってしまいます。}}nodamushi.coreは公開パッケージですが、nodamushi.internal.coreは他に公開したくありません。テストを別プロジェクトにしてしまう以上、これを公開しなければテスト用プロジェクトからnodamushi.internal.coreが見えません。これを回避するために、テストプロジェクトに対して、nodamushi.internal.coreを限定的に公開すると言うことが出来ます。テスト用に作るプラグインプロジェクトは一般公開するつもりのないものです。そんなものの情報をnodamushi.coreに残しておくというのはどうも気持ちが悪いです。プロジェクトnodamushi.core.testとして作ってしまいます。すれば、nodamushi.coreがnodamushi.core.testの存在を一切知らなくても、nodamushi.core.testはnodamushi.coreの全パッケージにアクセスすることが可能になります。テストケースクラスとスイートクラスを作るテストケース・スイートクラスはいつもと同じようにJUnitの新規ウィザードから作成して下さい。作成しようとすると、いつものJava開発と違う画面がポップアップします。これはそのままOKを押して下さい。自動的に依存関係にJUnitを追加してくれます。以下の図のようにテストケースとテストスイートを作りました。中身はこんな感じです。AllTests{}テストを実行するでは実際にテストを実行してみましょう。ウィンドウが開いたら、JUnitプラグインの項目で、新しい実行構成を新規作成します。スイートクラスを開いたままこの処理を実行すると、勝手に内容が入力されます。(入力されなかったら頑張って入力して下さい)メインタブに移動し、「アプリケーションの実行」をヘッドレス・モードにします。このヘッドレス・モードはWorkbench(GUI)を起動しないので、普通にEclipseの起動をしてテストをするよりも高速に実行が出来ます。(Workbenchがテストに必要な場合はorg.eclipse.ui.ide.workbenchを選択します)次に引数のタブに移動します。私のようにMargeDocで日本語化している雑魚は、VM引数でMergeDocの設定を引き継いでしまうので、削除して下さい。以上の設定が完了したら、実行を押します。あら、どうやらnodamushiをタイポしてnodamuchiになっていたみたいです。JUnitを導入している場合、スイートクラス内にカーソルがある場合、Ctrl+-で同じ内容を起動できます。私は「Alt+R,T,1」(ヒストリーの通常起動)か「Alt+R,H,1」(ヒストリーのデバッグ起動)を使うことが多いですが。これで基本的にはGUI操作やGUIリソースを必要としないものにかんしてはテストが出来ます。»プロフィールJavaで画像AI屋だったハズが、気がついたら制御論理やってて、Eclipse開発してて、組み込み屋で、CortexM4周りの開発してて、VerilogでRTL書いてて、STAしてて、色んな小さいインフラ管理してる、何でも屋。働きたくないでござる。(14)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。