Hi Jian, Thank you for your suggestions.
Actually my test suite is exactly like what you've suggested, the problem is not on the test suite itself. Looking at the stacktrace, the problem occurs when calling 'defineUi' of the 2nd test case class. My guess is it has something to do with Groovy's cache of 1st test case moduleUi that's not cleared, so when 2nd test case runs, it interferes. Any hint ? Regards, Setya > Here is a good article on JUnit. > > http://www.devx.com/Java/Article/31983/0/page/3 > > On Sat, Sep 26, 2009 at 9:10 PM, Jian Fang <[email protected] > <mailto:[email protected]>> wrote: > > Also tried @RunWith and @Suite as follows, > > ------------------------------------------------- > package example.test.java; > > import org.junit.runner.RunWith; > import org.junit.runners.Suite; > > @RunWith(Suite.class) > @Suite.SuiteClasses({ > GoogleSearchTestCase.class, > GoogleBooksListJavaTestCase.class > }) > public class TelluriumTestSuite { > > } > --------------------------------------- > > The test suite works fine for me. > > Please check if your error is really related to the test suite itself. > > Thanks, > > Jian > > > > On Sat, Sep 26, 2009 at 2:41 PM, Jian Fang > <[email protected] <mailto:[email protected]>> wrote: > > The root cause is this line, > > > org.tellurium.exception. > UiObjectNotFoundException: Cannot find UI Object > communityPageRoot.return > > Could you put a breakpoint in the following line > > > > com.telkom.sdp.module.community.CommunityPage.returnFromCommunityPage(CommunityPage.groovy:59 > > and try to debug and see why the parser "ui" cannot find the > object "communityPageRoot.return"? > > Thanks, > > Jian > > > On Sat, Sep 26, 2009 at 5:05 AM, Setya <[email protected] > <mailto:[email protected]>> wrote: > > > Hi, > > We finally find that we can use @RunWith & @SuiteClasses > annotations for > this purpose. But when we run the tests together, the 2nd > test case > always throws the following exception: > > java.lang.IllegalArgumentException: object is not an > instance of > declaring class > 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) > at > groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) > at > groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1061) > at > > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:127) > at > > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:147) > at > > com.telkom.sdp.module.community.RemoveCommunityPage.defineUi(RemoveCommunityPage.groovy:18) > at > > com.telkom.sdp.test.community.TestRemoveCommunityPage.displayCommunityPage(TestRemoveCommunityPage.java:29) > 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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) > at > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.ParentRunner.run(ParentRunner.java:220) > at org.junit.runners.Suite.runChild(Suite.java:115) > at org.junit.runners.Suite.runChild(Suite.java:23) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > at > org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > at > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > at > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.ParentRunner.run(ParentRunner.java:220) > at > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) > at > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) > > org.tellurium.exception.UiObjectNotFoundException: Cannot > find UI Object > communityPageRoot.return > at > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at > java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > > org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:70) > at > > org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:64) > at > > org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:78) > at > > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:55) > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:191) > at > > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:199) > at > > org.tellurium.dsl.BaseDslContext.walkToWithException(BaseDslContext.groovy:214) > at > > org.tellurium.dsl.BaseDslContext$walkToWithException.callCurrent(Unknown > Source) > at > org.tellurium.dsl.BaseDslContext.click(BaseDslContext.groovy:219) > 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.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86) > at > groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234) > at > groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1061) > at > > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:77) > at > > com.telkom.sdp.module.community.CommunityPage.returnFromCommunityPage(CommunityPage.groovy:59) > at > > com.telkom.sdp.test.community.TestRemoveCommunityPage.returnFromCommunityPage(TestRemoveCommunityPage.java:172) > 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.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:37) > at > org.junit.runners.ParentRunner.run(ParentRunner.java:220) > at org.junit.runners.Suite.runChild(Suite.java:115) > at org.junit.runners.Suite.runChild(Suite.java:23) > at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) > at > org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) > at > org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) > at > > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) > at > > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.ParentRunner.run(ParentRunner.java:220) > at > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) > at > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) > > Any idea ? > > > Regards, > > Setya > > > Setya, > > > > I use ant junit batchtest for such a job. > > > > Zsolt > > > > 2009/9/26 Setya <[email protected] > <mailto:[email protected]> <mailto:[email protected] > <mailto:[email protected]>>> > > > > > > Hi all, > > > > We have test cases that we want to include in single > test suite, since > > we can not use TestSuite class provided by JUnit, is > there any > > alternative class provided by Tellurium ? > > > > Regards, > > > > Setya > > > > > > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "tellurium-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/tellurium-users?hl=en -~----------~----~----~----~------~----~------~--~---
