テストスイートを手動で作成せずに、複数のパッケージのJUnitテストを同時に実行することは可能ですか?.
たとえば、階層がある場合:
code.branchone
code.branchone.aaa
code.branchone.bbb
code.branchtwo
code.branchtwo.aaa
code.branchtwo.bbb
次のことが可能ですか?
テストスイートを手動で作成する際に発生する問題は、新しいテストが追加されると、それらを追加するのを忘れることがあるということです。
はい、可能です。少なくとも私にとって最も簡単な方法は、テストスイートクラスを追加することです。次のようになります。
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
で定義したすべてのテストを実行します。
これはリンクされたソースでも機能します。私はいつもそれを使用しています。
別の方法:
下の図の赤い長方形で示されている黒い三角形をクリックしてください(Eclipseではここではありません)。
次に、実行構成を開き、新しい構成を作成して、以下の画像に示すように「すべてのテストを実行...」を設定します。
おそらく元の質問とまったく同じではないかもしれませんが、プロジェクトを右クリックするだけでプロジェクト全体のすべてのテストを簡単に実行できます-> JUnitTestとして実行します。注釈付きのクラスがどこにあるか心配する必要はありません。これはスキャンされます。
これは、test-src-folderまたはサブパックを含むパッケージに適用した場合は機能しません。実際にはかなり残念-.-
私はこれを少し微調整できると確信しています。 CLASSES_DIRプロパティのコレクションを作成し、findClassesメソッドでループします。 (junit4)
すべてのテストパッケージを1つのディレクトリに追加できると思います。このディレクトリを右クリックすると、「実行-> JUnitテスト」オプションが利用できるはずです。これは、ディレクトリに含まれるすべてのテストを実行し、追加したものをすべてキャッチします。新しいテストは、残りのテストとともにそこに配置されます。また、パッケージ名は何でも構いません。それが役に立てば幸い
確かに、必要なパッケージを右クリックして、「Run As ... JUnit Test」を選択します。
Eclipseでは、デバッグ/実行構成に次のオプションがあります。
この場合、2番目のオプションはあなたの友達だと思います。