在 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 对话框,我必须:
- 添加自定义
BlaBlaPluginJUnitMainTab
扩展 PluginJUnitMainTab
- 创建自定义 JUnitProgramBlock 实现(
BlaBlaJUnitProgramBlock
)
- 在
BlaBlaJUnitPluginTestTabGroup.BlaBlaPluginJUnitMainTab.createProgramBlock()
方法中创建 BlaBlaJUnitProgramBlock
的实例
- 重写
setDefaults
-方法(不确定是否真的需要)BlaBlaJUnitProgramBlock
- 重写
BlaBlaJUnitProgramBlock
中的 initializeForm 方法并在那里调整参数。
导致以下结果:
如果您只是为了方便而寻找快捷方式,那么 Eclipse 会记住上次执行。使用 运行 as 并保存你的 运行 配置后,只需使用工具栏中的 "Run as" 按钮。
除了这个 eclipse 还为测试人员带来了味道,你可以检查一下。
另外,由于您正在谈论单元测试,请查看您是否可以使用 ant build 或什至更好地转换为基于 maven 的项目。 Maven 集成了对测试的支持。
这个答案有惊无险:
试试这个:
- 手动创建和配置一个 "good" 启动配置。
下次您要启动尚未具有良好启动配置的测试时:
- Select 文件并调用
Run As > Run Configurations ...
(即,不要 select JUnit Plug-in Test
!)
- 在该对话框中 select 一个很好的同类启动配置,并且...
- 然后点击
New Launch Configuration
(左上角)
现在新创建的配置应该"inherit"来自好的配置的配置值。
真相是:
- 您可以复制现有的启动配置(让您手动 select 启动测试)
- Debug团队曾经有计划支持launch configuration templates。
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
预选。
我时不时地使用
从 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 对话框,我必须:
- 添加自定义
BlaBlaPluginJUnitMainTab
扩展PluginJUnitMainTab
- 创建自定义 JUnitProgramBlock 实现(
BlaBlaJUnitProgramBlock
) - 在
BlaBlaJUnitPluginTestTabGroup.BlaBlaPluginJUnitMainTab.createProgramBlock()
方法中创建BlaBlaJUnitProgramBlock
的实例 - 重写
setDefaults
-方法(不确定是否真的需要)BlaBlaJUnitProgramBlock
- 重写
BlaBlaJUnitProgramBlock
中的 initializeForm 方法并在那里调整参数。
导致以下结果:
如果您只是为了方便而寻找快捷方式,那么 Eclipse 会记住上次执行。使用 运行 as 并保存你的 运行 配置后,只需使用工具栏中的 "Run as" 按钮。
除了这个 eclipse 还为测试人员带来了味道,你可以检查一下。
另外,由于您正在谈论单元测试,请查看您是否可以使用 ant build 或什至更好地转换为基于 maven 的项目。 Maven 集成了对测试的支持。
这个答案有惊无险:
试试这个:
- 手动创建和配置一个 "good" 启动配置。
下次您要启动尚未具有良好启动配置的测试时:
- Select 文件并调用
Run As > Run Configurations ...
(即,不要 selectJUnit Plug-in Test
!) - 在该对话框中 select 一个很好的同类启动配置,并且...
- 然后点击
New Launch Configuration
(左上角)
现在新创建的配置应该"inherit"来自好的配置的配置值。
真相是:
- 您可以复制现有的启动配置(让您手动 select 启动测试)
- Debug团队曾经有计划支持launch configuration templates。
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
预选。