3 Replies Latest reply on Oct 20, 2009 7:37 AM by Stan Silvert

    I'm confused about JSFUnit and maven.

    Pucky Loucks Newbie

      Hi all,

      I have a seam application that I'd like to do some JSFUnit against and I've come across some issues.

      First my application is distributed so I know that there was an issue with serializing the jsfsession. The error I was getting is below:

      java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute

      So I turned off distributed and it worked.

      So I've got JSFUnit configured within my war which is deployed as part of an ear.

      Should I just create a unittest.war and deploy it within my ear and then test it that way?

      I've tried to do the above but my unittest.war can't access the pages of the main app.

      =======ear layout=======

      /mywebap.war <--root context /
      /unittest.war <-- root context /unittest


      Step 4 of http://www.jboss.org/community/wiki/JSFUnitWithMaven is the part that is confusing me.

      How am I suppose to configure my unittest.war to access my .seam files in the mywebapp.war?

      here's my test JSFUnit maybe the issue is here:

      ======Basic Test=======

      import org.apache.cactus.ServletTestCase;
      import org.jboss.jsfunit.jsfsession.JSFSession;
      import org.jboss.jsfunit.jsfsession.*;
      import org.jboss.jsfunit.framework.WebClientSpec;
      import org.jboss.jsfunit.richclient.RichFacesClient;
      import junit.framework.*;
      import java.io.IOException;

      public class BasicTest extends ServletTestCase {

      private JSFSession jsfSession;
      private JSFClientSession client;
      private RichFacesClient richClient;
      private JSFServerSession server;

      public void setUp() throws IOException
      WebClientSpec wcSpec = new WebClientSpec("/login.seam");
      this.jsfSession = new JSFSession(wcSpec);
      this.client = jsfSession.getJSFClientSession();
      this.richClient = new RichFacesClient(client);
      this.server = jsfSession.getJSFServerSession();

      public static Test suite() {
      return new TestSuite(BasicTest.class);

      public void testInitialPage() throws Exception {



      public void testLoginPageAdmin() throws Exception




      public void testLogoutAdmin() throws Exception





      So mainly what I'm trying to do is keep my application distributed but have the unittest.war not distributed so that I can get past the Serialization error. Will this work? Am I way off course here, I pretty much feel that way.