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 <
[email protected]> 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" <
> [email protected]> 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
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/swtbot-dev
>
>
_______________________________________________
swtbot-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/swtbot-dev