Java 在远程JBoss为7.2.0的arquillian测试中未创建数据库约束

Java 在远程JBoss为7.2.0的arquillian测试中未创建数据库约束,java,jboss,jboss-arquillian,Java,Jboss,Jboss Arquillian,我有一个JavaEE项目,几个月没有改变。使用此配置执行测试: <dependencies> <dependency> <groupId>org.jboss.arquillian.junit</groupId> <artifactId>arquillian-junit-container</artifactId> <scope>test</scope> &l

我有一个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>
我还尝试了最新版本1.1.8.Final的
arquillian junit容器
,效果相同

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");
}
部署公共静态存档createTestArchive() { WebArchive wa=ShrinkWrap.create(WebArchive.class,“test.war”); ... 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>

java:jboss/datasources/DsTest

我很困惑-arquillian与数据库约束有什么关系?您使用什么来生成ddl并将其部署到数据库中以进行测试运行?您是对的,arquillian没有创建数据库约束,arquillian只是打包web存档并执行测试(请参见更新1)。是否要将您的
persistence.xml
添加到问题中?当然,请参见更新2!
<?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>