Integration testing with TestNG plugin and hsqldb
javadeveloperx Feb 20, 2008 12:03 PMHello!
I switched my test environment from mysql to hsqldb and now I get the following error. It seams that the schema is not exported correctly, but why? The schema export works with mysql.
ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] schema export unsuccessful
org.hibernate.JDBCException: Error during import script execution
     at org.hibernate.tool.hbm2ddl.SchemaExport.importScript(SchemaExport.java:258)
     at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:192)
     at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:133)
     at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:311)
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
     at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:918)
     at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:656)
     at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
     at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:259)
     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:585)
     at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:56)
     at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:110)
     at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:214)
     at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:45)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:108)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:69)
     at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:135)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:46)
     at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
     at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
     at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
     at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
     at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
     at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
     at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
     at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
     at org.jboss.system.ServiceController.doChange(ServiceController.java:659)
     at org.jboss.system.ServiceController.start(ServiceController.java:431)
     at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:149)
     at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:107)
     at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
     at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:65)
     at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
     at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:169)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:853)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:874)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:906)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:794)
     at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
     at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
     at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
     at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
     at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:498)
     at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:506)
     at org.jboss.embedded.DeploymentGroup.process(DeploymentGroup.java:127)
     at org.jboss.embedded.Bootstrap.deployResourceBases(Bootstrap.java:289)
     at org.jboss.seam.mock.EmbeddedBootstrap.startAndDeployResources(EmbeddedBootstrap.java:15)
     at org.jboss.seam.mock.BaseSeamTest.startJbossEmbeddedIfNecessary(BaseSeamTest.java:1041)
     at org.jboss.seam.mock.BaseSeamTest.startSeam(BaseSeamTest.java:935)
     at org.jboss.seam.mock.BaseSeamTest.init(BaseSeamTest.java:923)
     at org.jboss.seam.mock.SeamTest.init(SeamTest.java:42)
     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:585)
     at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604)
     at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:394)
     at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
     at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:79)
     at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:165)
     at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:103)
     at org.testng.TestRunner.runWorkers(TestRunner.java:678)
     at org.testng.TestRunner.privateRun(TestRunner.java:624)
     at org.testng.TestRunner.run(TestRunner.java:495)
     at org.testng.SuiteRunner.runTest(SuiteRunner.java:300)
     at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295)
     at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275)
     at org.testng.SuiteRunner.run(SuiteRunner.java:190)
     at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792)
     at org.testng.TestNG.runSuitesLocally(TestNG.java:765)
     at org.testng.TestNG.run(TestNG.java:699)
     at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
     at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122)
Caused by: java.sql.SQLException: Table not found in statement [insert into User]
     at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
     at org.hsqldb.jdbc.jdbcStatement.fetchResult(Unknown Source)
     at org.hsqldb.jdbc.jdbcStatement.execute(Unknown Source)
     at org.jboss.resource.adapter.jdbc.WrappedStatement.execute(WrappedStatement.java:83)
     at org.hibernate.tool.hbm2ddl.SchemaExport.importScript(SchemaExport.java:254)
     ... 82 more
ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=persistence.units:jar=classes.jar,unitName=TAPS state=Create
javax.persistence.PersistenceException: org.hibernate.HibernateException: Missing table: address
     at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:663)
     at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
     at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:259)
     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:585)
     at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:56)
     at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:110)
     at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:214)
     at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:45)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:108)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:69)
     at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:135)
     at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.installAction(KernelControllerContextAction.java:46)
     at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
     at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
     at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
     at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
     at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
     at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
     at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:574)
     at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:398)
     at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:96)
     at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:90)
     at org.jboss.ejb3.MCKernelAbstraction.install(MCKernelAbstraction.java:151)
     at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:604)
     at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:400)
     at org.jboss.ejb3.deployers.EJBStage2Deployer.deploy(EJBStage2Deployer.java:53)
     at org.jboss.ejb3.deployers.EJBStage2Deployer.deploy(EJBStage2Deployer.java:37)
     at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:65)
     at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
     at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:169)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:853)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:794)
     at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
     at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
     at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
     at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
     at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
     at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
     at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:498)
     at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:506)
     at org.jboss.embedded.DeploymentGroup.process(DeploymentGroup.java:127)
     at org.jboss.embedded.Bootstrap.deployResourceBases(Bootstrap.java:289)
     at org.jboss.seam.mock.EmbeddedBootstrap.startAndDeployResources(EmbeddedBootstrap.java:15)
     at org.jboss.seam.mock.BaseSeamTest.startJbossEmbeddedIfNecessary(BaseSeamTest.java:1041)
     at org.jboss.seam.mock.BaseSeamTest.startSeam(BaseSeamTest.java:935)
     at org.jboss.seam.mock.BaseSeamTest.init(BaseSeamTest.java:923)
     at org.jboss.seam.mock.SeamTest.init(SeamTest.java:42)
     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:585)
     at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604)
     at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:394)
     at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
     at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:79)
     at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:165)
     at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:103)
     at org.testng.TestRunner.runWorkers(TestRunner.java:678)
     at org.testng.TestRunner.privateRun(TestRunner.java:624)
     at org.testng.TestRunner.run(TestRunner.java:495)
     at org.testng.SuiteRunner.runTest(SuiteRunner.java:300)
     at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295)
     at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275)
     at org.testng.SuiteRunner.run(SuiteRunner.java:190)
     at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792)
     at org.testng.TestNG.runSuitesLocally(TestNG.java:765)
     at org.testng.TestNG.run(TestNG.java:699)
     at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
     at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122)
Caused by: org.hibernate.HibernateException: Missing table: address
     at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1080)
     at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:116)
     at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:317)
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
     at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:918)
     at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:656)
     ... 76 more
FAILED CONFIGURATION: @BeforeClass init
org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
*** CONTEXTS MISSING DEPENDENCIES: Name -> Dependency{Required State:Actual State}
jboss.j2ee:jar=classes,name=AuthenticatorAction,service=EJB3
 -> <UNKNOWN>{Described:** UNRESOLVED Demands 'persistence.units:jar=classes.jar,unitName=TAPS **}
jboss.j2ee:jar=classes,name=ChangePasswordAction,service=EJB3
 -> <UNKNOWN>{Described:** UNRESOLVED Demands 'persistence.units:jar=classes.jar,unitName=TAPS **}
jboss.j2ee:jar=classes,name=ImportExportDAO,service=EJB3
 -> <UNKNOWN>{Described:** UNRESOLVED Demands 'persistence.units:jar=classes.jar,unitName=TAPS **}
*** CONTEXTS IN ERROR: Name -> Error
<UNKNOWN> -> ** UNRESOLVED Demands 'persistence.units:jar=classes.jar,unitName=TAPS **
persistence.units:jar=classes.jar,unitName=TAPS -> org.hibernate.HibernateException: Missing table: address
     at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:576)
     at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:559)
     at org.jboss.embedded.DeploymentGroup.process(DeploymentGroup.java:128)
     at org.jboss.embedded.Bootstrap.deployResourceBases(Bootstrap.java:289)
     at org.jboss.seam.mock.EmbeddedBootstrap.startAndDeployResources(EmbeddedBootstrap.java:15)
     at org.jboss.seam.mock.BaseSeamTest.startJbossEmbeddedIfNecessary(BaseSeamTest.java:1041)
     at org.jboss.seam.mock.BaseSeamTest.startSeam(BaseSeamTest.java:935)
     at org.jboss.seam.mock.BaseSeamTest.init(BaseSeamTest.java:923)
     at org.jboss.seam.mock.SeamTest.init(SeamTest.java:42)
... Removed 22 stack frames
SKIPPED CONFIGURATION: @BeforeMethod begin
SKIPPED CONFIGURATION: @AfterMethod end
SKIPPED CONFIGURATION: @BeforeMethod begin
SKIPPED CONFIGURATION: @AfterMethod end
SKIPPED CONFIGURATION: @AfterClass cleanup
SKIPPED: testLoginComponent
SKIPPED: testLoginMy persistence.xml:
<?xml version="1.0" encoding="UTF-8"?> <!-- Persistence deployment descriptor for dev profile --> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="TAPS"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/TAPSDatasource</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="create"/> <property name="hibernate.show_sql" value="false"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.format_sql" value="false"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> <!-- Required binding for Seam-managed persistence context in Embeddable JBoss --> <property name="jboss.entity.manager.factory.jndi.name" value="java:/entityManagerFactories/TAPS"/> </properties> </persistence-unit> </persistence>
My Project-ds.xml:
<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>TAPSDatasource</jndi-name> <connection-url>jdbc:hsqldb:.</connection-url> <driver-class>org.hsqldb.jdbcDriver</driver-class> <user-name>sa</user-name> <password></password> </local-tx-datasource> </datasources>