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

Reply via email to