2017-11-12 5 views
0

私はJUnit 5ライブラリでEclipse Oxygen.1a(4.7.1a)で作業しています。テストクラスを実行すると注釈付きメソッドが正しく実行されていないようですJUnitCoreを使用します。私はJUnitCore.run(TestClass.class)を使用して、以下のクラスを呼び出す場合JUnitCore.run()は@BeforeAllアノテーションを無視しています

たとえば、:

public class TestClass { 

    @BeforeAll 
    public static void beforeAll() { 
     System.out.println("In TestClass.beforeAll"); 
    } 

    @Test 
    public void testMethod() { 
     System.out.println("In TestClass.testMethod"); 
    } 

    @AfterAll 
    public static void afterAll() { 
     System.out.println("In TestClass.afterAll"); 
    } 

} 

ありSystem.outに何も出力されず、結果オブジェクトは、1つのテストが失敗したことを述べています。これらの方法のどれも実行されなかったことを暗示する。私はそうのようなテストクラスを実行するために、JUnitのランチャーを使用することができます。

final LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request() 
     .selectors(selectClass(TestClass.class)).build(); 
final Launcher launcher = LauncherFactory.create(); 
launcher.execute(request); 

しかし、これは私に/失敗した、それだけでそれらを実行すると思われるどのように多くの合格のテストについてのフィードバックを与えるものではありません。私はJUnitCoreをJUnit5で使用することに関する多くの文書を見つけることができません。

答えて

3

JUnitCoreをJUnit 5で使用するのではなく、分析の2番目の部分で行ったように、プラットフォームランチャーAPIを使用してください。

launcher#execute(.)は、JUnit 5のマニュアル7.1.2 Executing Testsに従って、リスナーを使用してテストの実行結果を集計する必要があります。

execute()メソッドの戻り値はありませんが、リスナーを使用して最終結果を自分のオブジェクトに集約することは簡単です。例については、SummaryGeneratingListenerを参照してください。あなたは、例えば実際にあなたが収集する情報を提供することがありますTestExecutionSummary生成することができます

final LauncherDiscoveryRequest request = 
    LauncherDiscoveryRequestBuilder.request() 
            .selectors(selectClass(TestClass.class)) 
            .build(); 

final Launcher launcher = LauncherFactory.create(); 
final SummaryGeneratingListener listener = new SummaryGeneratingListener(); 

launcher.registerTestExecutionListeners(listener); 
launcher.execute(request); 

TestExecutionSummary summary = listener.getSummary(); 
long testFoundCount = summary.getTestsFoundCount(); 
List<Failure> failures = summary.getFailures(); 
... 
+0

グレートありがとう、私はドキュメントであることを逃したのか分かりません。 –

関連する問題