У меня есть простое представление, обычно зарегистрированное в моем подключаемом модуле Eclipse (4.5.2), и оно работает, когда я запускаю экземпляр 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)
Код Tycho прост:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<providerHint>junit4</providerHint>
<useUIHarness>true</useUIHarness>
</configuration>
</plugin>
Я нашел эту ошибку и еще парочку, но не нашел ничего, объясняющего, почему она не работает только в Тихо. И я не мог найти ничего о том, как это исправить.
Так что же я сделал не так? Как это исправить?