Java “更改默认值”;“要运行的程序”;在Eclipse启动配置中

Java “更改默认值”;“要运行的程序”;在Eclipse启动配置中,java,eclipse,junit,eclipse-plugin,ide,Java,Eclipse,Junit,Eclipse Plugin,Ide,我时不时地使用 运行方式>JUnit插件测试 默认情况下,Eclipse假定您正在运行需要工作台的东西,并在启动配置的“Main”部分进行选择 LaunchConfig>Main>Program To Run>Run a application> org.eclipse.ui.ide.workbench 我可以理解为什么这是默认设置,但对我(以及我们团队中的所有人)来说,情况从来都不是这样。我们总是需要像以前一样运行JUnit插件测试 LaunchConfig>Main>Program To R

我时不时地使用

运行方式>JUnit插件测试

默认情况下,Eclipse假定您正在运行需要工作台的东西,并在启动配置的“Main”部分进行选择

LaunchConfig>Main>Program To Run>Run a application> org.eclipse.ui.ide.workbench

我可以理解为什么这是默认设置,但对我(以及我们团队中的所有人)来说,情况从来都不是这样。我们总是需要像以前一样运行JUnit插件测试

LaunchConfig>Main>Program To Run>Run a application> [无应用程序]无头模式

如何更改此默认行为? 我目前正在使用Eclipse4.4。

看来,自定义启动配置扩展是一种可行的解决方案尝试。 我所做的是创建一个新的自定义LaunchConfiguration扩展,它是在JUnitLanchConfiguration上构建的99.999%。我只需要添加一个自定义项

BlaBlaJUnitPluginTestLauncher extends launching.JUnitLaunchConfigurationDelegate
它覆盖了

launch(ILaunchConfiguration, String, ILaunch, IProgressMonitor)
方法根据需要调整应用参数

BlaBlaJUnitPluginTestTabGroup extends org.eclipse.pde.ui.launcher.JUnitTabGroup
为了能够使用默认参数初始化LaunchConfig对话框,我必须:

  • 添加自定义的
    BlablaPluginJUnitMain选项卡
    extends
    PluginJUnitMain选项卡
  • 创建自定义JUnitProgramBlock实现(
    BlaBlaJUnitProgramBlock
  • BlaBlaJUnitPluginTestTabGroup.blablablapluginjUnitmaintab.createProgramBlock()方法中创建
    BlaBlaJUnitProgramBlock
    的实例
  • 重写
    BlaBlaJUnitProgramBlock
  • 重写
    BlaBlaJUnitProgramBlock
    中的initializeForm方法,并在其中调整参数
  • 导致以下结果:


    如果您只是为了方便而寻找快捷方式,那么eclipse会记住最后一次执行。使用运行方式并保存您的运行配置后,只需使用工具栏中的“运行方式”按钮。 除此之外,eclipse还为测试人员提供了丰富的体验,您可以查看它。 另外,既然您正在谈论单元测试,那么看看您是否可以使用ant构建,或者更好地转换为基于maven的项目。Maven集成了对测试的支持。

    这个答案几乎是错的:

    试试这个:

  • 手动创建并配置一个“良好”启动配置
  • 下次要启动尚未具有良好启动配置的测试时:

  • 选择该文件并调用
    runas>runconfigurations…
    (即,不要选择
    junitplugintest
    !)
  • 在该对话框中,选择一个良好的同类启动配置,然后
  • 然后单击新的启动配置(左上角)
  • 现在,新创建的配置应该“继承”来自良好配置的配置值

    事实是:

    • 您可以复制现有的启动配置(让您手动选择要启动的测试)
    • 调试团队曾经有过支持的计划
    编辑2018:


    自EclipsePhoton以来,Java调试器支持。我刚刚申请了这项测试发射。请随意加入(或参与)这个bug。

    似乎有一个简单而有效的启发式方法,它决定JUnit插件测试是无头运行还是与应用程序一起运行:

    确保包含测试的插件不依赖于任何东西
    org.eclipse.ui

    • 如果没有依赖项,则默认情况下,新创建的启动配置将选择
      [无应用程序-无头模式]
    • 对于该依赖项,默认值是
      运行产品
      ,并预选了类似于
      org.eclipse.platform.ide的s.t.

    您是否尝试创建特定的
    配置
    ?在
    Run>runconfigurations…
    下,然后在
    Junit插件测试中创建一个配置。这一个将在以后的菜单中可用,然后在使用一次后使用默认值。你能解释一下我将如何使用这个新创建的配置吗?这并不是说我无法修改特定的启动配置,而是我们有20k JUnit测试用例,我希望能够在不进行任何进一步配置的情况下运行它们中的每一个。在操作栏中,单击
    运行方式的
    箭头
    ,然后从下拉列表中选择您的配置谢谢。我知道您可以创建新的启动配置。但是你是想说,我可以用新创建的启动配置运行任何旧的、新的和即将到来的JUnit测试吗?我想我现在接受我自己的答案。我们的工作区中有556个插件,大概有4000个Test.java文件。它们中的很多都是驻留在托管具有swt依赖性的插件的片段中的测试。这些测试不能开箱即用,因为Eclipse总是选择“错误”的应用程序模式。不过,我感谢您的帮助。此外:测试在连续构建中运行良好。我们只是在任何开发人员机器上本地运行它们时遇到了问题。这听起来像是一个很好的工作。明天早上我会试试的。如果这行得通的话,我想这里有个+100的人。谢谢Stephan。不幸的是,它不适用于Eclipse4.4。很多条目都是从“良好”启动配置中复制的,尤其是“主”选项卡和“要运行的程序”部分中的条目。事实上,它是硬连线的:if(requiresUIThread())setApplication(ui.ide.workbench),当使用给定的启动配置初始化对话框时可能会发生这种情况。非常感谢您,Stephan。几年前,Eclipse的调试团队致力于模板化的启动配置,请参阅。不幸的是,这一功能被破坏了