Java 使用包含的工作区项目运行Eclipse插件测试

Java 使用包含的工作区项目运行Eclipse插件测试,java,eclipse,plugins,Java,Eclipse,Plugins,我正在编写一个小的Eclipse插件和一些测试。我通过指定插件测试在无头模式下运行来启动插件测试。我想在这些测试中访问工作区中的活动Java项目,但是当我执行它们时,工作区是空的。我使用以下代码获取所有Java项目(工作正常): 但是,项目总是空的。这是因为Headless模式启动了一个新的Eclipse实例,其中有一个空的工作区。我的问题是:我是否可以指定测试应该在当前Eclipse实例中运行,或者我是否可以指定我希望在新创建的工作区中拥有的项目?我找到了一种简单的方法来设置测试工作区,并想与

我正在编写一个小的Eclipse插件和一些测试。我通过指定插件测试在
无头模式下运行来启动插件测试。我想在这些测试中访问工作区中的活动Java项目,但是当我执行它们时,工作区是空的。我使用以下代码获取所有Java项目(工作正常):


但是,项目总是空的。这是因为
Headless模式
启动了一个新的Eclipse实例,其中有一个空的工作区。我的问题是:我是否可以指定测试应该在当前Eclipse实例中运行,或者我是否可以指定我希望在新创建的工作区中拥有的项目?

我找到了一种简单的方法来设置测试
工作区,并想与您共享它(尽管这意味着回答我自己的问题):

  • 打开
    Eclipse
    并在光盘上的某个位置创建一个新的
    工作区
  • 将一些示例项目添加到新的
    工作区
  • 打开一个包含
    插件测试的
    Eclipse
    实例
  • 在JUnit插件测试启动配置中,转到
    Main
    选项卡
  • 指定在1)中创建并在2)中填充的
    工作区
  • 运行测试,该测试将从指定的
    工作区和其中的所有项目开始

  • 这两件事你都不能做。您需要在测试工作区中设置项目。您可以为此提供任何链接或示例代码吗?非常感谢。
    IWorkspaceRoot myWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
    for(IProject project : myWorkspaceRoot.getProjects()) {
            if(project.isOpen() && isJavaProject(project)) {
                    IJavaProject javaProject = JavaCore.create(project);
                    projects.put(project.getName(), javaProject);
            }
    }