使用远程JBoss AS 7.2.0在arquillian测试中未创建数据库约束

时间:2015-05-30 09:24:11

标签: java jboss jboss-arquillian

我有一个JavaEE项目,几个月没有改变。使用此配置执行测试:

<dependencies>
  <dependency>
     <groupId>org.jboss.arquillian.junit</groupId>
     <artifactId>arquillian-junit-container</artifactId>
     <scope>test</scope>
     <version>1.0.0.CR7</version>
  </dependency>
</dependencies>

<profile>
     <id>arq-jbossas-remote</id>
     <activation><activeByDefault>true</activeByDefault></activation>
     <dependencies>
        <dependency>
           <groupId>org.jboss.as</groupId>
           <artifactId>jboss-as-arquillian-container-remote</artifactId>
           <version>7.1.0.Final</version>
           <scope>test</scope>
        </dependency>
     </dependencies>
  </profile>

JBoss AS 7.1.1.Final "Brontes"运行良好。 不,我想更新到最新版本的JBoss AS。切换到JBoss EAP 6.1.0.GA (AS 7.2.0.Final-redhat-8)(以及更新的版本)并将配置文件版本更改为 7.2.0.Final 时,我意识到有几个测试(检查是否允许注意重复的类型代码组合)由于在MySQL数据库中创建了 not 约束而失败。

@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"type","code"}))

我还尝试了arquillian-junit-container的最近版本 1.1.8.Final ,效果相同。

Update1 我正在创建像这样的@Deployment,persistence.xml是一个常用的hibernate持久性单元。在每个测试周期之前,删除并创建测试数据库,使用hibernate.hbm2ddl.auto=create创建表。

@Deployment public static Archive<?> createTestArchive()
{
  WebArchive wa = ShrinkWrap.create(WebArchive.class, "test.war");
  ...
  wa.addAsResource("test/persistence.xml", "META-INF/persistence.xml");
}

Update2 这是persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
  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_2_0.xsd"> 
<persistence-unit name="test">
  <jta-data-source>java:jboss/datasources/DsTest</jta-data-source>
  <properties>
     <property name="hibernate.show_sql" value="false"/>
     <property name="hibernate.hbm2ddl.auto" value="create"/>
     <property name="hibernate.max_fetch_depth" value="0" />
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
  </properties>
</persistence-unit>
</persistence>

0 个答案:

没有答案