gpt4 book ai didi

eclipse-plugin - WorkbenchPage.busyShowView 中的 NullPointerException

转载 作者:行者123 更新时间:2023-12-04 15:32:04 24 4
gpt4 key购买 nike

我在 Eclipse 插件 (4.5.2) 中正常注册了一个简单的 View ,当我使用该插件启动 Eclipse 实例时,它可以正常工作。它在相应的测试用例中仍然有效,其方法如下:

@Before
public void setUp() throws Exception {
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
for (IViewReference viewReference : activePage.getViewReferences()) {
activePage.hideView(viewReference);
}
activePage.showView("org.acme.MyView");
}

然而,当我用 Tycho(0.22、0.24 或 0.25)运行相同的测试时,我得到以下异常:
java.lang.NullPointerException: null
at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1271)
at org.eclipse.ui.internal.WorkbenchPage$12.run(WorkbenchPage.java:4238)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:4234)
at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:4214)
at org.acme.MyViewTest.setUp(MyViewTest.java:39)

第谷代码很简单:

<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<providerHint>junit4</providerHint>
<useUIHarness>true</useUIHarness>
</configuration>
</plugin>

我找到了 this bug还有一些,但我没有找到任何解释为什么它只会在第谷失败。我找不到任何关于如何解决这个问题的信息。

那么我做错了什么?我如何解决它?

最佳答案

我的猜测是,在您的测试运行时中缺少了成熟的 Eclipse 工作台所需的某些东西,而 PDE 添加了它,但 Tycho 没有。 (默认情况下,Tycho 仅将 eclipse-test-plugin 的(传递)依赖项添加到测试运行时。)

尝试将以下内容添加到您的 tycho-surefire-plugin执行:

<configuration>
<!-- ... ->
<dependencies>
<dependency>
<artifactId>org.eclipse.e4.rcp</artifactId>
<type>eclipse-feature</type>
</dependency>
</dependencies>
</configuration>

这应该将许多插件引入您的测试运行时,否则可能不存在(例如 org.eclipse.e4.core.di ,这些测试通常不直接或间接依赖)。

当然,以上仅适用于 org.eclipse.e4.rcp功能是目标平台的一部分。

关于eclipse-plugin - WorkbenchPage.busyShowView 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38322979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com