Here's the stack trace: java.lang.NoClassDefFoundError: es/liberty/isis/core/ui/swt/widgets/ComboSearchSelector at es.liberty.swtbot.test.TestProducts.canCreateAMessage(TestProducts.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99) at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45) at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66) at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.swtbot.eclipse.core.RemotePluginTestRunner.main(RemotePluginTestRunner.java:64) at org.eclipse.swtbot.eclipse.core.UITestApplication.runTests(UITestApplication.java:117) at org.eclipse.ui.internal.testing.WorkbenchTestable$1.run(WorkbenchTestable.java:68) at java.lang.Thread.run(Thread.java:619) Caused by: java.lang.ClassNotFoundException: es.liberty.isis.core.ui.swt.widgets.ComboSearchSelector at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:483) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399) at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 24 more
And test source code: /* * es.liberty.swtbot.plugin/es.liberty.swtbot.test/TestProducts.java 23/02/2011 */ package es.liberty.swtbot.test; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; import org.hamcrest.Matcher; import org.junit.Before; import org.junit.Test; import es.liberty.isis.core.ui.swt.widgets.ComboSearchSelector; import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType; import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.allOf; import static org.junit.Assert.assertTrue; public class TestProducts { private SWTWorkbenchBot bot; @Test public void canCreateAMessage() throws Exception { SWTBotPreferences.TIMEOUT = 10000; bot.menu("Aplicacion").menu("Comercial").menu("Posición Global").click(); Matcher matcher = allOf( widgetOfType(ComboSearchSelector.class) ); ComboSearchSelector combo = (ComboSearchSelector) bot.widget(matcher); assertTrue(combo.getItemCount() > 0); } @Before public void setup() { bot = new SWTWorkbenchBot(); } } I have already checked that the plugin holding the ComboSearchSelector class is exporting the corresponding package (es.liberty.isis.core.ui.swt.widgets). Regards, Jordi. On Thu, Feb 24, 2011 at 6:20 PM, Ketan Padegaonkar < ketanpadegaon...@gmail.com> wrote: > Could you please share the stack trace and the complete unit test that > causes thus issue? > > - Ketan > studios.thoughtworks.com | eclipse.org/swtbot | @ketanpkr > On Feb 24, 2011 7:37 AM, "Jordi Fernandez" < > jordi.fernan...@tribal-tech.net> wrote: > > I'm developing a test with SWTBot that is throwing NoClassDefFoundError > when > > trying to load a class that is present in a runtime plugin dependency. > > > > I'm using Eclipse 3.4.2. My workspace has several plugin projects for the > > product under development plus the SWTBot test plugin. Initially I code a > > simple test which just clicked in a menu. It runs fine: > > > > --------- > > public void menuTest() throws Exception { > > > > bot.menu("A").menu("B").menu("C").click(); > > > > } > > ---------- > > > > > > Then I tried to access a custom developed widget using the following > code: > > > > > > ---------------- > > > > public void menuTest() throws Exception { > > SWTBotPreferences.TIMEOUT = 10000; > > bot.menu("Aplicacion").menu("Comercial").menu("Posición > > Global").click(); > > System.out.println("Hola"); > > > > Matcher matcher = allOf( > > widgetOfType(ComboSearchSelector.class) > > ); > > > > ComboSearchSelector combo = (ComboSearchSelector) bot.widget(matcher); > > assertTrue(combo.getItemCount() > 0); > > } > > > > -------------------- > > > > This second test fails with a NoClassDefFoundError for the > > ComboSearchSelector class. This class is in one of the plugin projects of > my > > workspace and is included as a plugin to load in the run configuration > (as > > it is a required plugin for the product under development) . In order to > > compile my test, I added this plugin project as a project dependency in > the > > java build path. > > > > How come I'm getting a NoClassDefFoundError at runtime when the > referenced > > class is loaded (because the plug-in that holds it is present at > runtime)? > > > > Thanks in advance. > > _______________________________________________ > swtbot-dev mailing list > swtbot-dev@eclipse.org > https://dev.eclipse.org/mailman/listinfo/swtbot-dev > >
_______________________________________________ swtbot-dev mailing list swtbot-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/swtbot-dev