Hibernate 单元测试中entitymanager存在问题:没有名为的entitymanager的持久性提供程序
我确实有一个关于JPA持久性单元测试的问题 在运行JUnit测试时,我为EntityManager获得了一个名为exception的无持久性提供程序。我听从了这篇文章的建议,但似乎没有任何效果 我在JBOSS应用服务器上运行单元测试 我用这段代码得到了我的EntityManagerHibernate 单元测试中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
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,否则根本不会使用它。也许可以解释为什么持久性单元不存在。现在可以了。谢谢。