1 Reply Latest reply on Mar 5, 2010 2:19 PM by Christoph Wieser

    Testing: Need help with PostgreSQL and Jboss embedded

    Ilya Dyoshin Novice

      good day community,


      I've run into strange problem. I need to run tests on mine application with SEAM, I have a developer database on postgreSQL (actually our application is tight to postgreSQL).



      but my application doesn't starts inside of the tests:


         [testng] FAILED CONFIGURATION: @BeforeSuite startSeam
         [testng] org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
         [testng] 
         [testng] *** CONTEXTS MISSING DEPENDENCIES: Name -> Dependency{Required State:Actual State}
         [testng] 
         [testng] jboss.jca:name=lexDatasource,service=DataSourceBinding
         [testng]  -> jboss:service=invoker,type=jrmp{Create:** NOT FOUND **}
         [testng]  -> jboss:service=invoker,type=jrmp{Start:** NOT FOUND **}
         [testng] 
         [testng] 
         [testng] *** CONTEXTS IN ERROR: Name -> Error
         [testng] 
         [testng] jboss:service=invoker,type=jrmp -> ** NOT FOUND **
         [testng] 
         [testng] 
         [testng]      at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:576)
         [testng]      at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:559)
         [testng]      at org.jboss.embedded.Bootstrap.bootstrapURL(Bootstrap.java:149)
         [testng]      at org.jboss.embedded.Bootstrap.bootstrap(Bootstrap.java:183)
         [testng]      at org.jboss.embedded.Bootstrap.bootstrap(Bootstrap.java:195)
         [testng]      at org.jboss.seam.mock.EmbeddedBootstrap.startAndDeployResources(EmbeddedBootstrap.java:11)
         [testng]      at org.jboss.seam.mock.AbstractSeamTest.startJbossEmbeddedIfNecessary(AbstractSeamTest.java:1024)
         [testng]      at org.jboss.seam.mock.AbstractSeamTest.startSeam(AbstractSeamTest.java:915)
         [testng]      at org.jboss.seam.mock.SeamTest.startSeam(SeamTest.java:58)
         [testng] ... Removed 15 stack frames
         [testng] SKIPPED CONFIGURATION: @BeforeClass setupClass
         [testng] SKIPPED CONFIGURATION: @BeforeMethod begin
      





      I've started with seam-gen and than modified the ant script (acording for tests) (actually it deploys the dev-ds.xml to the bootstrap/deploy and compiles everything with groovy 'cause I'm using it sometimes) :



      <target name="copytestclasses" if="eclipse.running" description="Copy classes compiled by eclipse to the test dir">
          <mkdir dir="${test.dir}"/>
              <copy todir="${test.dir}">
                  <fileset dir="classes/main">
                      <include name="**/*.class"/>
                  </fileset>
              </copy>
              <copy todir="${test.dir}">
                  <fileset dir="classes/hot">
                      <include name="**/*.class"/>
                  </fileset>
              </copy>
              <copy todir="${test.dir}">
                  <fileset dir="classes/test">
                      <include name="**/*.class"/>
                  </fileset>
              </copy>
          </target>
      
          <target name="buildtest" depends="init,compiletest,copytestclasses" description="Build the tests">
              <copy todir="${test.dir}">
                  <fileset dir="${basedir}/resources">
                      <exclude name="META-INF/persistence*.xml"/>
                      <exclude name="import*.sql"/>
                      <exclude name="${project.name}-*-ds.xml"/>
                      <exclude name="components-*.properties"/>
                  </fileset>
                  <fileset dir="${basedir}/view"/>
              </copy>
              <copy tofile="${test.dir}/META-INF/persistence.xml"
                  file="${basedir}/resources/META-INF/persistence-test.xml"/>
              <copy tofile="${test.dir}/import.sql"
                  file="${basedir}/resources/import-test.sql"/>
              <copy tofile="${test.dir}/components.properties"
                  file="${basedir}/resources/components-test.properties"/>
               <copy tofile="${basedir}/bootstrap/deploy/lex-test-ds.xml"
                           file="${basedir}/resources/lex-dev-ds.xml"/>
              <copy todir="${test.dir}" flatten="true">
                  <fileset dir="${src.test.dir}">
                      <include name="**/*Test.xml"/>
                  </fileset>
              </copy>
          </target>
      
          <target name="test" depends="buildtest" description="Run the tests">
              <fail message="Cannot run tests because path to project contains spaces.">
                  <condition>
                      <contains string="${basedir}" substring=" "/>
                  </condition>
              </fail>
              <condition property="incompatible.jdk" value="true">
                  <and>
                      <equals arg1="${ant.java.version}" arg2="1.6"/>
                      <not><available classname="javax.xml.bind.JAXB"/></not>
                  </and>
              </condition>
              <fail if="incompatible.jdk">You are using an incompatible JDK 6. Please use Sun JDK 6 Update 4 (1.6.0_04) or newer or use Open JDK 6.</fail>
              <taskdef resource="testngtasks" classpath="${testng.jar}"/>
              <path id="test.path">
                  <path path="${test.dir}"/>
                  <fileset dir="${lib.dir}/test">
                      <include name="*.jar"/>
                  </fileset>
                  <path path="${bootstrap.dir}"/>
                  <path refid="build.classpath"/>
              </path>
              <testng outputdir="${basedir}/test-report">
                  <jvmarg line="-Dsun.lang.ClassLoader.allowArraySyntax=true"/>
                  <classpath refid="test.path"/>
                  <xmlfileset dir="${test.dir}" includes="*Test.xml"/>
              </testng>
          </target>
      
          <target name="javadoc" depends="compile">
              <mkdir dir="${dist.dir}/apidoc"/>
              <javadoc classpathref="build.classpath"
                             encoding="utf-8"
                             destdir="${dist.dir}/apidoc" 
                             private="on" 
                             use="true" 
                             version="true" 
                             windowtitle="${project.name} API Documentation" 
                             doctitle="${project.name} API Documentation" 
                             link="http://java.sun.com/j2se/5.0/docs/api">
                  <packageset dir="${src.action.dir}" defaultexcludes="yes">
                      <include name="*/**"/>
                  </packageset>
                  <packageset dir="${src.model.dir}" defaultexcludes="yes">
                      <include name="*/**"/>
                  </packageset>
              </javadoc>
          </target>




      Any idea?