JDTでJUnitのテスト結果をリスニングして収集する方法

1402 ワード

最近、自動化されたバッチテストのプラグインを作っています.JUnitベースです.プラグインはJDTのJUintプラグインに依存し、自動的にJUintテストを開始し、テスト結果を収集します.この文書では、JUnitのテスト結果をリスニングして収集する方法に焦点を当てます.方法1:JDTプラグインが提供するorgを実現する.eclipse.jdt.junit.testRunListeners拡張点.この拡張ポイントは、ITestRunListenerインタフェースを実装するlistenerクラスを指定する必要があります.
方法2:eclipse 3における拡張点とインタフェース.3バージョン以降は@deprecatedと表記されていますが、javaの東は時代遅れで速いですね.時代の歩みに追いつくために、今流行っている方法を見てみましょう.今回我々が実現したのは抽象クラスTestRunListenerであり,メソッド1のインタフェースよりずっと簡単で,以下のように4つのメソッド定義しかない.

public abstract class TestRunListener {
	
	public void sessionStarted(ITestRunSession session) {
	}

	public void sessionFinished(ITestRunSession session) {
              // ITestRunSession 
	}

	public void testCaseStarted(ITestCaseElement testCaseElement) {
	}

	public void testCaseFinished(ITestCaseElement testCaseElement) {
	}
}


この方法を採用するにはまずJUnitのいくつかの基本概念を理解する必要がある.testCaseとは、テスト方法に対応するテスト例を指す.testSuiteはJUnitの1つのテストクラスを使用するので、1つのtestSuiteに複数のtestCaseを含めることができます.testRunとはJUnitの1回の運行を指し、testRunには複数のtestSuiteを入れることができる.testRunSessionとは、JUnitの1回の実行は1サイクルであり、各サイクルに1つのtestRunしか実行されないということです.これらの基本概念を知ると,TestRunListenerの4つの方法の役割が一目瞭然になる.
最後に、このlistenerを登録します.方法の1つは拡張点を採用して登録します.方法2はJUnitを起動する前に以下のコードを実行する必要があります.
 
 JUnitCore.addTestRunListener(yourTestRunListener);