Hibernate 单元测试中entitymanager存在问题:没有名为的entitymanager的持久性提供程序

Hibernate 单元测试中entitymanager存在问题:没有名为的entitymanager的持久性提供程序,hibernate,unit-testing,jakarta-ee,jpa,Hibernate,Unit Testing,Jakarta Ee,Jpa,我确实有一个关于JPA持久性单元测试的问题 在运行JUnit测试时,我为EntityManager获得了一个名为exception的无持久性提供程序。我听从了这篇文章的建议,但似乎没有任何效果 我在JBOSS应用服务器上运行单元测试 我用这段代码得到了我的EntityManager final String PERSISTENCE_UNIT_TEST = "RFIDPeopleProtoPersistenceTest"; public PersonDAOTest( ) throws

我确实有一个关于JPA持久性单元测试的问题

在运行JUnit测试时,我为EntityManager获得了一个名为exception的无持久性提供程序。我听从了这篇文章的建议,但似乎没有任何效果

我在JBOSS应用服务器上运行单元测试

我用这段代码得到了我的EntityManager

   final String PERSISTENCE_UNIT_TEST = "RFIDPeopleProtoPersistenceTest";

   public PersonDAOTest( ) throws Exception{
    try{
        this.personDAO = new PersonDAO( );

        EntityManagerFactory factory = Persistence.createEntityManagerFactory( PERSISTENCE_UNIT_TEST );
            EntityManager em = factory.createEntityManager();  

            dao.setEntityManager( em );

    }catch( Exception e ){
        ...
    }
}
我在maven项目pom.xml中有hibernate-entitymanger.jar

        <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-entitymanager</artifactId>
          <version>4.2.18.Final-redhat-2</version>
          <scope>test</scope>
    </dependency>
我的持久性规范文件test-persistence.xml中有用于测试的

<persistence-unit name="RFIDPeopleProtoPersistenceTest" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <jta-data-source>java:jboss/datasources/rfidpeopleProtoTestDS</jta-data-source>
  <class>org.rfidpeople.prototype.model.AbstractContactInfo</class>
  <properties>
    <property name="connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver" />
    <property name="connection.url" value="jdbc:jtds:sqlserver://localhost:1433/RFIDPeople" />
   <property name="connection.username" value="sa" />
   <property name="connection.password" value="sa1234" />
   <property name="dialect" value="org.hibernate.dialect.SQLServerDialect" />
   <property name="hibernate.hbm2ddl.auto" value="create-drop" />
   <property name="hibernate.show_sql" value="false" />  
  </properties>
我的EclipseJBossDeveloperStudio中有这个文件系统

我目前找不到解决问题的方法


非常感谢您的帮助。

尝试将persistence.xml放入测试资源META-INF中。或者通过arquillian将原来的persistence.xml替换为test-persistence.xml?您好,非常感谢您的回答实际上我在src/test/resources/META-INF中有一个test-persistence.xml。上面描述的持久化单元包含在test-persistence.xmlJPA中,它不查找test-persistence.xml。除非通过arquillian将其重命名为persistence.xml,否则根本不会使用它。也许可以解释为什么持久性单元不存在。现在可以了。谢谢。