web-dev-qa-db-ja.com

Eclipseの複数のパッケージからJUnitテストを実行することは可能ですか?

テストスイートを手動で作成せずに、複数のパッケージのJUnitテストを同時に実行することは可能ですか?.

たとえば、階層がある場合:

code.branchone
code.branchone.aaa
code.branchone.bbb
code.branchtwo
code.branchtwo.aaa
code.branchtwo.bbb

次のことが可能ですか?

  1. Code.branchoneおよび子孫パッケージですべてのテストを実行します
  2. たとえばcode.branchone.aaaおよびcode.branchtwo.bbbですべてのテストを実行します

テストスイートを手動で作成する際に発生する問題は、新しいテストが追加されると、それらを追加するのを忘れることがあるということです。

50
will

はい、可能です。少なくとも私にとって最も簡単な方法は、テストスイートクラスを追加することです。次のようになります。

package tests;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

import tests.message.ATest;
import tests.validator.BTest;
import tests.validator.CTest;
import tests.validator.DTest;

@RunWith(Suite.class)
@SuiteClasses({ ATest.class, 
        BTest.class, 
        CTest.class, 
        DTest.class })
public class AllTests {

}

これにより、どのパッケージが含まれているかに関係なく、インポートするクラスをテストできます。これをEclipseで実行するには、AllTestsクラスを右クリックして、JUnitテストとして実行します。次に、@SuiteClassesで定義したすべてのテストを実行します。

これはリンクされたソースでも機能します。私はいつもそれを使用しています。

25
span

別の方法:

下の図の赤い長方形で示されている黒い三角形をクリックしてください(Eclipseではここではありません)。

enter image description here

次に、実行構成を開き、新しい構成を作成して、以下の画像に示すように「すべてのテストを実行...」を設定します。

enter image description here

19
jhegedus

おそらく元の質問とまったく同じではないかもしれませんが、プロジェクトを右クリックするだけでプロジェクト全体のすべてのテストを簡単に実行できます-> JUnitTestとして実行します。注釈付きのクラスがどこにあるか心配する必要はありません。これはスキャンされます。

これは、test-src-folderまたはサブパックを含むパッケージに適用した場合は機能しません。実際にはかなり残念-.-

13
icyerasor

私はこれを少し微調整できると確信しています。 CLASSES_DIRプロパティのコレクションを作成し、findClassesメソッドでループします。 (junit4)

http://burtbeckwith.com/blog/?p=52

3
Jurgen Hannaert

すべてのテストパッケージを1つのディレクトリに追加できると思います。このディレクトリを右クリックすると、「実行-> JUnitテスト」オプションが利用できるはずです。これは、ディレクトリに含まれるすべてのテストを実行し、追加したものをすべてキャッチします。新しいテストは、残りのテストとともにそこに配置されます。また、パッケージ名は何でも構いません。それが役に立てば幸い

1
chillysapien

確かに、必要なパッケージを右クリックして、「Run As ... JUnit Test」を選択します。

1
Phil

Eclipseでは、デバッグ/実行構成に次のオプションがあります。

  1. 単一のテストを実行する
  2. 選択したプロジェクト、パッケージ、またはソースフォルダー内のすべてのテストを実行します

この場合、2番目のオプションはあなたの友達だと思います。

1
bruno conde