如何监听并收集JDT中JUnit的测试结果

最近在做一个自动化批量测试的插件,是基于JUnit的。插件依赖于JDT的JUint插件,会自动启动JUint测试,并且收集测试结果。
本文重点讨论如何监听并收集JUnit的测试结果。

方法一:实现JDT插件提供的org.eclipse.jdt.junit.testRunListeners扩展点。
这个扩展点需要指定一个listener类,实现ITestRunListener接口。


方法二:方法一种扩展点和接口在eclipse3.3版本以后就被标注为@deprecated了,java的东东过时还真是快,为了跟上时代的步伐,我们还是看看现在流行的方法吧。
这次我们实现的是一个抽象类TestRunListener,比方法一中的接口简单很多,只有四个方法定义,如下

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中一个测试类,所以一个testSuite中可以包含多个testCase;
 testRun是指JUnit的一次运行,testRun里可以装在多个testSuite;
 testRunSession是说JUnit的一次运行是一个周期,每个周期只运行一个testRun。
 
 知道了这些基本概念,那么就对TestRunListener的四个方法作用一目了然了。


 最后,就是注册这个listener,方法一是采用扩展点去注册的,方法二需要在启动JUnit前执行以下代码:

 

 JUnitCore.addTestRunListener(yourTestRunListener);
 

你可能感兴趣的:(eclipse,JUnit)