Community
Participate
Working Groups
Build Identifier: 20100917-0705 We've developed an Eclipse RCP application were we use tycho to run our CI tests and also some UI tests. I recently raised the tycho version from 0.12.0 to 0.13.0. Now I've the problem that the UI tests fail if I run the tests with tycho but the same tests are successful when I start them from Eclipse (as Plugin-Test). The strange thing is that the UI looks different depending if I use tycho or Eclipse. I'll attach some screenshots to show the difference. Reproducible: Always Steps to Reproduce: I can't provide an example yet, but I'll work on it.
Created attachment 208672 [details] How the UI should look like
Created attachment 208673 [details] How the UI looks running with Tycho
See [1] "The OSGi runtimes for tests no longer contains the full target platform but only the (transitive) dependencies of the test bundle. This may lead to test failures due to missing implicit dependencies. Recommendation: Make the dependencies explicit in the component feature and add it to the test runtime." [1] http://wiki.eclipse.org/Tycho/Release_Notes/0.13
I've the same problem going back to 0.12.0.
I did some debugging and it seems that a ClassDefNotFoundError is raised during the UI test: java.lang.NoClassDefFoundError: Could not initialize class com.prostep.openpdm.who.controller.carpool.ConfigurationLabelProvider This class is provided in one of our plugins. Here's how it looks like: com.prostep.openpdm.who.ui.test is a fragment with com.prostep.openpdm.who being it's host plugin. com.prostep.openpdm.who has a dependency to com.prostep.openpdm.who.controller which contains the class. So how can I add the com.prostep.openpdm.who.controller to the test OSGI environment and why is it not already contained (since it is a direct dependency of the host)? Here's the stacktrace: java.lang.NoClassDefFoundError: Could not initialize class com.prostep.openpdm.who.controller.carpool.ConfigurationLabelProvider at com.prostep.openpdm.optimizer.gui.HarnessExplorer.createAdditionalTreeContent(HarnessExplorer.java:145) at com.prostep.openpdm.optimizer.gui.CarpoolExplorer.createConfigTree(CarpoolExplorer.java:118) at com.prostep.openpdm.optimizer.gui.CarpoolExplorer.refresh(CarpoolExplorer.java:450) at com.prostep.openpdm.optimizer.gui.multipageeditor.MultiPageEditor.pageChange(MultiPageEditor.java:803) at org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java:1067) at org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:603) at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:352) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313) at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180) at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270) at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473) at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1254) at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1207) at org.eclipse.ui.internal.PartStack.presentationSelectionChanged(PartStack.java:841) at org.eclipse.ui.internal.PartStack.access$1(PartStack.java:827) at org.eclipse.ui.internal.PartStack$1.selectPart(PartStack.java:137) at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:133) at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:269) at org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:278) at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1) at org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$2.handleEvent(DefaultTabFolder.java:88) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774) at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743) at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429) at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at com.prostep.openpdm.optimizer.Application.start(Application.java:25) at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:31) at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:114) at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:37) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Can you check if tycho 0.14.0-SNAPSHOT behaves differently? It is available from <pluginRepositories> <pluginRepository> <id>tycho-snapshots</id> <url>https://oss.sonatype.org/content/groups/public/</url> </pluginRepository> </pluginRepositories> If the problem still exists in 0.14.0-SNAPSHOT, please provide a complete standalone example project that demonstrates the problem and we'll have a look.
I'll try the 0.14.0-SNAPSHOT and give you feedback
Created attachment 208768 [details] Log of tests with Tycho 0.14.0-SNAPSHOT Same result with Tycho 0.14.0-SNAPSHOT. I've attached my .log file.
(In reply to comment #8) > Created attachment 208768 [details] > Log of tests with Tycho 0.14.0-SNAPSHOT > > Same result with Tycho 0.14.0-SNAPSHOT. > > I've attached my .log file. The log does not really help, we need complete standalone example project that demonstrates the problem.
I'll try to set up a standalone example.
My bad.. the error was an exception in a static initialization block of my class. Sorry for the inconvenience.