Spring Jpa集成测试Persistence.xml

Spring Jpa集成测试Persistence.xml,spring,jpa,integration-testing,Spring,Jpa,Integration Testing,我正在尝试对我开发的服务执行集成测试。部分服务涉及使用DAO。在这一点上,我需要做的是在我的设置中创建某种到持久化单元的连接,然后我可以测试我的服务 我基本上复制persistence.xml并将其放在src/test/resources中,我正在尝试 @Before public void beginTransaction() { emf = Persistence.createEntityManagerFactory(dao-test"); em = emf.createEntity

我正在尝试对我开发的服务执行集成测试。部分服务涉及使用DAO。在这一点上,我需要做的是在我的设置中创建某种到持久化单元的连接,然后我可以测试我的服务

我基本上复制persistence.xml并将其放在src/test/resources中,我正在尝试

@Before
public void beginTransaction() {
  emf = Persistence.createEntityManagerFactory(dao-test");
  em = emf.createEntityManager();
}
@试验 公共无效测试帐户捐赠(){

无法获取驱动程序类“oracle.jdbc.driver.OracleDriver”和URL“jdbc:oracle:thin:@data arctichome.arcw2.com:1521:orclgdb1”的连接。您可能指定了无效的URL

这是我的持久性单元

<persistence-unit name="dao-test"
    transaction-type="RESOURCE_LOCAL">

    <properties>
        <property name="openjpa.ConnectionDriverName"
            value="oracle.jdbc.driver.OracleDriver" />


        <property name="openjpa.ConnectionURL"
            value="jdbc:oracle:thin:@xxxxxxxxx:orclgdb1" />
        <property name="openjpa.ConnectionUserName" value="xxxxxx" />
        <property name="openjpa.ConnectionPassword"
            value="xxxxxx" />
    </properties>
</persistence-unit>


谢谢。

我对JPA、GlassFish等还是很陌生,但对你来说,我想知道你是从哪里开始数据库的。对于嵌入式应用程序,我认为你需要在代码中启动它,不是吗?只是大声想一想…

Spring提供了很多,例如在集成测试中管理应用程序上下文和事务,所以与尝试创建所有的持久性等功能相比,我建议您通读测试章节(或者在“网络”中查找一些示例),使用Spring提供的功能。从长远来看,这将为您节省大量时间和精力

<persistence-unit name="dao-test"
    transaction-type="RESOURCE_LOCAL">

    <properties>
        <property name="openjpa.ConnectionDriverName"
            value="oracle.jdbc.driver.OracleDriver" />


        <property name="openjpa.ConnectionURL"
            value="jdbc:oracle:thin:@xxxxxxxxx:orclgdb1" />
        <property name="openjpa.ConnectionUserName" value="xxxxxx" />
        <property name="openjpa.ConnectionPassword"
            value="xxxxxx" />
    </properties>
</persistence-unit>