JUnitLaunchShortcut有几个类测试

时间:2011-11-10 23:53:27

标签: eclipse eclipse-plugin junit

当我执行这段代码时:

Object[] segments = new Object[2];
segments[0] = // JUnit Test Class 1
segments[1] = // JUnit Test Class 2

TreePath treepath = new TreePath(segments);
TreeSelection treeselection = new TreeSelection(treepath);

JUnitLaunchShortcut j = new JUnitLaunchShortcut();
j.launch(treeselection, ILaunchManager.RUN_MODE);

Eclipse / JUnit Plugin只执行 JUnit Test Class 2 ,也许执行两个Test Class但只在JUnit上显示查看最后一个Test Class(可能)....

你怎么想?我如何“启动”所有测试类?

1 个答案:

答案 0 :(得分:1)

正如您在评论中所说,eclipse的JUnit插件不支持配置中的多个选择。但是,org.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate确实支持多个测试启动。当您在JUnit插件中选择项目/包/测试类,并选择Run as JUnit test时,它会将配置传递给JUnitLaunchConfigurationDelegate,在那里它评估要运行的测试。如果有,它会调用RemoteTestRunner:

RemoteTestRunner -test TestClass

如果找到多个文件,则运行方式如下:

RemoteTestRunner -testfile testNamesxxxx.txt

其中testNamesxxx.test是一个包含要运行的测试列表的文件,例如:

uk.co.farwell.junit.parameters.ParameterTest
uk.co.farwell.junit.run.AllTests
uk.co.farwell.junit.run.Class1Test

此文件在临时目录中创建。因此,探索的一种可能方法是扩展JUnitLaunchConfigurationDelegate并覆盖evaluateTests方法,该方法具有以下签名:

protected IMember[] evaluateTests(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {

您还可以通过ILaunchConfiguration传达测试列表,但是您也可以为插件扩展它。