2014-05-13 71 views
0

我正在尝试为Eclipse创建插件。 我想要做的是从工作区访问JUnit测试并通过插件运行。 到目前为止,我已经设法使用ILaunchConfiguration来运行它,但我不知道如何收集运行结果。 由于我想多次运行相同的测试,并在两者之间做了小的改动,我想知道是否有另一种方式来运行测试并通过插件轻松收集结果?从Eclipse插件运行JUnit测试并访问结果

到目前为止,我使用已经试过:

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProjects()[0]; 

对于从工作区使用的项目。但是,我遇到了能够将其作为JUnit测试运行的问题。

我设法运行测试的方式是通过使用

ILaunchConfiguration configuration = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations()[1]; 

,然后运行它通过调用

configuration.launch(ILaunchManager.RUN_MODE, null); 

虽然我从来没有设法收集结果

+0

欢迎来到StackOverflow。如果您能提供一些关于您已经尝试过的信息,我们会发现它很有帮助。请修改您的问题以包含此信息。 – JamesENL

回答

0

一种解决方案是注册org.eclipse.jdt.junit.TestRunListener。您可以使用org.eclipse.jdt.junit.testRunListeners扩展点来注册您自己的TestRunListener类。

TestRunListener侦听包含JUnit会话结束的事件,这是您可以在其中保存对该会话的引用的位置。

class MyTestRunListener extends TestRunListener { 

    public void sessionFinished(ITestRunSession session) { 

     // Do something with session - save it away to a collection, for example. 

    } 




} 
+0

谢谢你的回答。我正在尝试这样做,但每当我调用类时,我总是收到java.lang.ClassNotFoundException – bodemyr

+0

您能否更明确地表明您想要调用的内容以及ClassNotFoundException无法找到的内容? –

+0

我试图在启动ILaunchConfiguration的同一个类中创建一个MyTestRunListener的实例。 ClassNotFoundException引用org.eclipse.jdt.junit.TestRunListener – bodemyr

相关问题