2009-06-03 12 views
7

どこでプラグインテストを書くのですか?私はいくつかのおもちゃのプラグインを書いており、私のプラグインでTDDをやってみたいと思っています。eclipse junitプラグインテストを書く

+0

機能のどのようなテストしたいですか? 実際、JUnitのプラグインテストは単純なJUnitテストです。Eclipse固有のテストはありません。唯一の違いは、JUnitプラグインテストとしてJUnitテストを実行すると、Eclipseのインスタンス内で実行されることです。 –

+0

プラグインテストから、どのようにEclipseと対話しますか?たとえば、いくつかのアクションを実行するためにプログラムでイベントを投稿しますか? – zeroin23

答えて

14

プラグインがSWTのRCP(Rich Client Platform)プラグインである場合、SWTBotを使用できます。
これらのテストはJUnitの1にカプセル化することができます。

Run-as-config-create


あなたのプラグインがOSGiベースされている場合は、OSGiバンドルは、それが自分のクラスローダだ実行され、そのためのクラスがないように見えることに注意しなければなりません同じパッケージに入れてください。
を参照してください "Is OSGi the enemy of JUnit tests?"

テストがfragmentをプラグインしてください。
1つの問題は、他のプラグインがフラグメントで定義されたクラスにアクセスできないことです(Patrick Paulinはa more detailed discussion about fragments in unit testsで指摘しています)。
フラグメント内のplugin.xmlが無視されるという別の問題があります。そのため、あなたは試験用プラグインは、パトリックの記事から

に貢献することはできません。

Aフラグメントは、外部からのプラグインのような多くを探します。これは、ワークスペース内の別のプロジェクトとして表され、その内容を記述するマニフェストを含んでいます。このマニフェストは、ビルドされ、jarとしてデプロイされます。フラグメントを異なるものにするのは、実行時に単一のホストプラグインにリソースを提供することです。したがって、フラグメント内のクラスは、ホストプラグインのクラスローダによってロードされます。

plugin unit test 断片的に私たちのユニットテストを配置することにより、我々は、テスト対象のクラスの非パブリックメソッドに対する我々のテストへのアクセスを提供することができます。また、ソースコードとテストコードは実際には同じプラグインの一部であるため、エクスポートされていないパッケージに関する問題はありません。テストクラスは、プラグインがエクスポートされているかどうかに関係なく、プラグイン内のすべてのパッケージにアクセスできます。

このフラグメントベースのアプローチの主な欠点は、単体テストをマスターテストスイートに集約することが難しいことです。フラグメント内にテストを含むテストスイートを作成するのは簡単ですが、複数のフラグメントでテストを含むスイートを作成するのは簡単ではありません。


あなたのプラグインがちょうどいくつかの簡単なテストが必要な場合は、JUnit testスイートは

十分にある「パッケージtest.yourpackageに新しいテストケースBookTestを作成し、右のパッケージをクリックして選択しますNew > JUnit Test Case "。

new test case

関連する問題