Hi! Thanks for the answer! Comments below...
Arndt Pohlmann wrote: >> Hi! >> >> I've set up a testing environment for an existing Webapplication which uses >> Struts 1.1, with Cactus 13-1.5beta1 and StrutsTestCase 200-1.1_2.2 > >Hmm, this looks like a mismatch. You're using Cactus for J2EE version >1.3, but StrutsTestCase for Servlet-API version 2.2 (which corresponds >to J2EE version 1.2). You should either use StrutsTestCase 200-1.1_2.3 >or Cactus 12. I will definitely look into this... could well be that I've made a mistake there... >> I add the test classes during ant build via "CactifyWar"-task, and then use >> runservertests and junit-tasks for running the tests. >> >> "execute()"-methods of my Action classes. It does something (JBoss tells me >> something about PropertyMessageResources initializing, and TilesPlugin >> factory and so on, but no logging msgs from my execute method... >> >> I've already posted in StutsTestCase-forum, but it is less frequented than >> this mailing list, and I really have to get this going (this is a project >> for my last exam...) >> >> Here's my cactify war task: >> >> <target name="cactify war" depends="buildwar" description="Adds cactus >> resources to WAR" > >> <delete file="${build.dir}/aproda3.war" /> >> <copy todir="${build.dir}" file="${dist.dir}/aproda3.war" /> >> <delete file="${dist.dir}/aproda3.war" /> >> <cactifywar srcfile="${build.dir}/aproda3.war" destfile=" >> ${dist.dir}/aproda3.war"> >> <lib file="${lib.dir}/strutstest.jar" /> >> </cactifywar> >> </target> > >Does the WAR contain your test case classes before the cactification? >Otherwise you'll need to add them like this: > > <cactifywar ...> > <classes dir="path/to/test/classes"/> > > </cactifywar> Yes, my WAR does contain the testing classes before "cactification". I simply compile all .java files under /src... >> Here's my testing-task (conatiner.start and container.stop are empty, since >> the war gets deployed elsewhere): >> >> <target name="Run Tests" description="Runs the Cactus Tests"> >> <delete dir="${reports.dir}" /> >> <mkdir dir="${reports.dir}" /> >> <runservertests >> testurl >> ="http://localhost:8080/ServletRedirector?Cactus_Service=RUN_TEST" >> starttarget="container.start" >> stoptarget="container.stop" >> testtarget="test"/> >> </target> >> >> <target name="test"> >> <junit fork="yes"> >> <formatter type="plain" usefile="false" /> >> <classpath refid="test.classpath" /> >> <batchtest> >> <fileset dir="${classes.dir}"> >> <include name="**/Test*.class"/> >> <exclude name="**/TestAll.class"/> >> </fileset> >> </batchtest> >> </junit> >> </target> >> >> >> Any suggestions are more than welcome! > >What happens when you run the JUnit task like this? > The following output is produced from ant (and believe me, the error.login.user NEVER gets sent by my execute..., and the nullPointerException gets fired because of a missing session-attribute, which ALWAYS gets set during my execute method): Run Tests delete Deleting directory C:\aproda\APRODA3\web\reports mkdir Created dir: C:\aproda\APRODA3\web\reports runservertests test junit Tests run: 2, Failures: 1, Errors: 1, Time elapsed: 4,877 sec Testcase: testSuccessfulLoginOhneZiel took 4,186 sec FAILED was expecting no error messages, but received: "error.login.user" junit.framework.AssertionFailedError: was expecting no error messages, but received: "error.login.user" at servletunit.struts.Common.verifyNoActionMessages(Common.java:62) at servletunit.struts.CactusStrutsTestCase.verifyNoActionErrors(CactusStrutsTestCase.java:564) at de.adesso.aproda.tests.TestLoginAction.testSuccessfulLoginOhneZiel(TestLoginAction.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.apache.cactus.internal.server.ServerTestCaseDelegate.runServerTest(ServerTestCaseDelegate.java;org/apache/cactus/util/log/LogAspect.aj[1k]:214) at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:280) at org.apache.cactus.ServletTestCase.runBare(ServletTestCase.java:251) at org.apache.cactus.server.AbstractWebTestCaller.doTest(AbstractWebTestCaller.java:156) at org.apache.cactus.server.AbstractWebTestController.dispatch133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:130) at org.apache.cactus.server.AbstractWebTestController.around133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.AbstractWebTestController.handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:101) at org.apache.cactus.server.ServletTestRedirector.dispatch160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:125) at org.apache.cactus.server.ServletTestRedirector.around160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:109) at org.apache.cactus.server.ServletTestRedirector.dispatch159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:96) at org.apache.cactus.server.ServletTestRedirector.around159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:92) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:293) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581) at org.mortbay.http.HttpContext.handle(HttpContext.java:1687) at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:544) at org.mortbay.http.HttpContext.handle(HttpContext.java:1637) at org.mortbay.http.HttpServer.service(HttpServer.java:875) at org.jboss.jetty.Jetty.service(Jetty.java:543) at org.mortbay.http.HttpConnection.service(HttpConnection.java:806) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:203) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290) at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743) at java.lang.Thread.run(Thread.java:534) Testcase: testSuccessfulLoginOhneZielTestcase: testSuccessfulLoginMitZiel took 0,661 sec Caused an ERROR null java.lang.NullPointerException at de.adesso.aproda.tests.TestLoginAction.testSuccessfulLoginMitZiel(TestLoginAction.java:56) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.apache.cactus.internal.server.ServerTestCaseDelegate.runServerTest(ServerTestCaseDelegate.java;org/apache/cactus/util/log/LogAspect.aj[1k]:214) at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:280) at org.apache.cactus.ServletTestCase.runBare(ServletTestCase.java:251) at org.apache.cactus.server.AbstractWebTestCaller.doTest(AbstractWebTestCaller.java:156) at org.apache.cactus.server.AbstractWebTestController.dispatch133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:130) at org.apache.cactus.server.AbstractWebTestController.around133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.AbstractWebTestController.handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:101) at org.apache.cactus.server.ServletTestRedirector.dispatch160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:125) at org.apache.cactus.server.ServletTestRedirector.around160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:109) at org.apache.cactus.server.ServletTestRedirector.dispatch159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:96) at org.apache.cactus.server.ServletTestRedirector.around159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:92) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:293) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581) at org.mortbay.http.HttpContext.handle(HttpContext.java:1687) at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:544) at org.mortbay.http.HttpContext.handle(HttpContext.java:1637) at org.mortbay.http.HttpServer.service(HttpServer.java:875) at org.jboss.jetty.Jetty.service(Jetty.java:543) at org.mortbay.http.HttpConnection.service(HttpConnection.java:806) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:203) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290) at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743) at java.lang.Thread.run(Thread.java:534) Testcase: testSuccessfulLoginMitZiel Testsuite: de.adesso.aproda.tests.Tests Tests run: 2, Failures: 1, Errors: 1, Time elapsed: 1,342 sec Testcase: testSuccessfulLoginOhneZiel took 0,671 sec FAILED was expecting no error messages, but received: "error.login.user" junit.framework.AssertionFailedError: was expecting no error messages, but received: "error.login.user" at servletunit.struts.Common.verifyNoActionMessages(Common.java:62) at servletunit.struts.CactusStrutsTestCase.verifyNoActionErrors(CactusStrutsTestCase.java:564) at de.adesso.aproda.tests.TestLoginAction.testSuccessfulLoginOhneZiel(TestLoginAction.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.apache.cactus.internal.server.ServerTestCaseDelegate.runServerTest(ServerTestCaseDelegate.java;org/apache/cactus/util/log/LogAspect.aj[1k]:214) at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:280) at org.apache.cactus.ServletTestCase.runBare(ServletTestCase.java:251) at org.apache.cactus.server.AbstractWebTestCaller.doTest(AbstractWebTestCaller.java:156) at org.apache.cactus.server.AbstractWebTestController.dispatch133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:130) at org.apache.cactus.server.AbstractWebTestController.around133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.AbstractWebTestController.handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:101) at org.apache.cactus.server.ServletTestRedirector.dispatch160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:125) at org.apache.cactus.server.ServletTestRedirector.around160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:109) at org.apache.cactus.server.ServletTestRedirector.dispatch159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:96) at org.apache.cactus.server.ServletTestRedirector.around159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:92) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:293) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581) at org.mortbay.http.HttpContext.handle(HttpContext.java:1687) at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:544) at org.mortbay.http.HttpContext.handle(HttpContext.java:1637) at org.mortbay.http.HttpServer.service(HttpServer.java:875) at org.jboss.jetty.Jetty.service(Jetty.java:543) at org.mortbay.http.HttpConnection.service(HttpConnection.java:806) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:203) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290) at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743) at java.lang.Thread.run(Thread.java:534) Testcase: testSuccessfulLoginOhneZielTestcase: testSuccessfulLoginMitZiel took 0,641 sec Caused an ERROR null java.lang.NullPointerException at de.adesso.aproda.tests.TestLoginAction.testSuccessfulLoginMitZiel(TestLoginAction.java:56) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.apache.cactus.internal.server.ServerTestCaseDelegate.runServerTest(ServerTestCaseDelegate.java;org/apache/cactus/util/log/LogAspect.aj[1k]:214) at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:280) at org.apache.cactus.ServletTestCase.runBare(ServletTestCase.java:251) at org.apache.cactus.server.AbstractWebTestCaller.doTest(AbstractWebTestCaller.java:156) at org.apache.cactus.server.AbstractWebTestController.dispatch133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:130) at org.apache.cactus.server.AbstractWebTestController.around133_handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.AbstractWebTestController.handleRequest(AbstractWebTestController.java;org/apache/cactus/util/log/LogAspect.aj[1k]:101) at org.apache.cactus.server.ServletTestRedirector.dispatch160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:125) at org.apache.cactus.server.ServletTestRedirector.around160_doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:109) at org.apache.cactus.server.ServletTestRedirector.dispatch159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:96) at org.apache.cactus.server.ServletTestRedirector.around159_doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:1151) at org.apache.cactus.server.ServletTestRedirector.doGet(ServletTestRedirector.java;org/apache/cactus/util/log/LogAspect.aj[1k]:92) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:293) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581) at org.mortbay.http.HttpContext.handle(HttpContext.java:1687) at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:544) at org.mortbay.http.HttpContext.handle(HttpContext.java:1637) at org.mortbay.http.HttpServer.service(HttpServer.java:875) at org.jboss.jetty.Jetty.service(Jetty.java:543) at org.mortbay.http.HttpConnection.service(HttpConnection.java:806) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:203) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290) at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743) at java.lang.Thread.run(Thread.java:534) Testcase: testSuccessfulLoginMitZiel TEST de.adesso.aproda.tests.Tests FAILED And this is the output in the Jboss console (the first message is logged directly at startup of the test method): 11:27:58,603 INFO [TestLoginAction] Small test of Cactus logger! 11:27:58,613 INFO [PropertyMessageResources] Initializing, config ='org.apache.s truts.action.ActionResources', returnNull=true 11:27:59,254 INFO [PropertyMessageResources] Initializing, config ='ApplicationR esources', returnNull=true 11:27:59,264 INFO [TilesPlugin] Factory already exists for module ''. The facto ry found is from module ''. No new creation. 11:27:59,274 INFO [TilesRequestProcessor] Tiles definition factory found for re quest processor ''. 11:27:59,815 INFO [PropertyMessageResources] Initializing, config ='org.apache.s truts.action.ActionResources', returnNull=true 11:28:00,355 INFO [PropertyMessageResources] Initializing, config ='ApplicationR esources', returnNull=true 11:28:00,365 INFO [TilesPlugin] Factory already exists for module ''. The facto ry found is from module ''. No new creation. 11:28:00,375 INFO [TilesRequestProcessor] Tiles definition factory found for re quest processor ''. 11:28:06,554 INFO [TestLoginAction] Small test of Cactus logger! 11:28:06,564 INFO [PropertyMessageResources] Initializing, config ='org.apache.s truts.action.ActionResources', returnNull=true 11:28:07,115 INFO [PropertyMessageResources] Initializing, config ='ApplicationR esources', returnNull=true 11:28:07,115 INFO [TilesPlugin] Factory already exists for module ''. The facto ry found is from module ''. No new creation. 11:28:07,125 INFO [TilesRequestProcessor] Tiles definition factory found for re quest processor ''. 11:28:07,396 INFO [PropertyMessageResources] Initializing, config ='org.apache.s truts.action.ActionResources', returnNull=true 11:28:07,926 INFO [PropertyMessageResources] Initializing, config ='ApplicationR esources', returnNull=true 11:28:07,926 INFO [TilesPlugin] Factory already exists for module ''. The facto ry found is from module ''. No new creation. 11:28:07,936 INFO [TilesRequestProcessor] Tiles definition factory found for re quest processor ''. 11:28:08,026 INFO [TestLoginAction] Small test of Cactus logger! 11:28:08,036 INFO [PropertyMessageResources] Initializing, config ='org.apache.s truts.action.ActionResources', returnNull=true 11:28:08,567 INFO [PropertyMessageResources] Initializing, config ='ApplicationR esources', returnNull=true 11:28:08,567 INFO [TilesPlugin] Factory already exists for module ''. The facto ry found is from module ''. No new creation. 11:28:08,577 INFO [TilesRequestProcessor] Tiles definition factory found for re quest processor ''. 11:28:08,727 INFO [PropertyMessageResources] Initializing, config ='org.apache.s truts.action.ActionResources', returnNull=true 11:28:09,248 INFO [PropertyMessageResources] Initializing, config ='ApplicationR esources', returnNull=true 11:28:09,248 INFO [TilesPlugin] Factory already exists for module ''. The facto ry found is from module ''. No new creation. 11:28:09,258 INFO [TilesRequestProcessor] Tiles definition factory found for re quest processor ''. Now back to testing the J2EE versions... >> Thanks, >> >> Arndt > >-- >Christopher Lenz >/=/ cmlenz at gmx.de --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]