はい、テスト スイート内のテストの前後に、セットアップ メソッドと破棄メソッドを確実に実行できます。コードでデモンストレーションしましょう:
package com.test;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
@BeforeClass
public static void setUp() {
System.out.println("setting up");
}
@AfterClass
public static void tearDown() {
System.out.println("tearing down");
}
}
したがって、Test1
クラスは次のようになります。
package com.test;
import org.junit.Test;
public class Test1 {
@Test
public void test1() {
System.out.println("test1");
}
}
Test2
...そして、似ていることが想像できます。を実行するTestSuite
と、次のようになります。
setting up
test1
test2
tearing down
したがって、セットアップ/破棄は、それぞれすべてのテストの前後にのみ実行されることがわかります。
キャッチ: これは、テスト スイートを実行している場合にのみ機能し、Test1 と Test2 を個別の JUnit テストとして実行していません。あなたはmavenを使用していると述べましたが、maven Surefireプラグインは、スイートの一部ではなく、個別にテストを実行するのが好きです。この場合、各テスト クラスを拡張するスーパークラスを作成することをお勧めします。スーパークラスには、注釈付きの @BeforeClass および @AfterClass メソッドが含まれます。上記の方法ほどきれいではありませんが、うまくいくと思います。
失敗したテストの問題については、maven.test.error.ignore を設定して、失敗したテストでビルドが続行されるようにすることができます。これは継続的なプラクティスとしてはお勧めできませんが、すべてのテストに合格するまで機能するはずです。詳細については、maven Surefire のドキュメントを参照してください。