在 Eclipse 启动配置中更改默认 "Program to Run"

Change default "Program to Run" in Eclipse launch configuration

我时不时地使用

从 Eclipse 中启动 JUnit 测试

Run As > JUnit Plug-in Test

默认情况下,Eclipse 假设您正在 运行ning 一些需要 workbench 的东西,并在启动配置的 "Main" 部分中选择

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

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

LaunchConfig > Main > Program To Run > Run an application > [No Application] Headless Mode

如何更改此默认行为? 我目前正在使用 Eclipse 4.4。

自定义 LaunchConfiguration-Extension 似乎是一种可行的解决方案尝试。 我所做的是创建一个新的自定义 LaunchConfiguration-Extension,它 99.999% 构建在 JUnitLaunchConfiguration 上。我只需要添加自定义

BlaBlaJUnitPluginTestLauncher extends launching.JUnitLaunchConfigurationDelegate

覆盖

launch(ILaunchConfiguration, String, ILaunch, IProgressMonitor)

根据自己的需要调整应用参数的方法

BlaBlaJUnitPluginTestTabGroup extends org.eclipse.pde.ui.launcher.JUnitTabGroup

为了能够使用默认参数初始化 LaunchConfig 对话框,我必须:

  1. 添加自定义 BlaBlaPluginJUnitMainTab 扩展 PluginJUnitMainTab
  2. 创建自定义 JUnitProgramBlock 实现(BlaBlaJUnitProgramBlock
  3. BlaBlaJUnitPluginTestTabGroup.BlaBlaPluginJUnitMainTab.createProgramBlock() 方法中创建 BlaBlaJUnitProgramBlock 的实例
  4. 重写 setDefaults-方法(不确定是否真的需要)BlaBlaJUnitProgramBlock
  5. 重写 BlaBlaJUnitProgramBlock 中的 initializeForm 方法并在那里调整参数。

导致以下结果:

如果您只是为了方便而寻找快捷方式,那么 Eclipse 会记住上次执行。使用 运行 as 并保存你的 运行 配置后,只需使用工具栏中的 "Run as" 按钮。 除了这个 eclipse 还为测试人员带来了味道,你可以检查一下。 另外,由于您正在谈论单元测试,请查看您是否可以使用 ant build 或什至更好地转换为基于 maven 的项目。 Maven 集成了对测试的支持。

这个答案有惊无险:

试试这个:

  1. 手动创建和配置一个 "good" 启动配置。

下次您要启动尚未具有良好启动配置的测试时:

  1. Select 文件并调用 Run As > Run Configurations ...(即,不要 select JUnit Plug-in Test!)
  2. 在该对话框中 select 一个很好的同类启动配置,并且...
  3. 然后点击New Launch Configuration(左上角)

现在新创建的配置应该"inherit"来自好的配置的配置值。

真相是:

2018 年编辑:

自 Eclipse Photon 以来,Java 调试器支持 launch configuration prototypes. I just filed Bug 536728 请求这也用于测试启动。随时参与(或贡献)该错误。

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

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

  • 如果没有该依赖项,默认情况下会为新创建的启动配置选择 [No Application - Headless Mode]
  • 使用该依赖项,默认值为 Run a product,使用 s.t。喜欢 org.eclipse.platform.ide 预选。