Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Spring JPA DAO单元测试迁移到google应用程序引擎_Spring_Unit Testing_Google App Engine_Maven_Jpa - Fatal编程技术网

将Spring JPA DAO单元测试迁移到google应用程序引擎

将Spring JPA DAO单元测试迁移到google应用程序引擎,spring,unit-testing,google-app-engine,maven,jpa,Spring,Unit Testing,Google App Engine,Maven,Jpa,我正在尝试建立一个简单的环境,在这里我可以让Spring、Maven、JPA、Google应用程序引擎和DAO单元测试一起愉快地工作 目标是能够运行一个简单的DAO单元测试,创建一个实体,然后用一个简单的查找再次加载它,以检查它是否被正确创建——所有这些都来自我的maven构建 我的dao使用JPA实体管理器查询、持久化等 我已经让它与hsqldb和数据源等一起工作没有问题,但我正在努力让它与appengine一起工作 我的问题是: 1我正在使用一个实体管理器,注入我的持久性单元,如下所示。可以

我正在尝试建立一个简单的环境,在这里我可以让Spring、Maven、JPA、Google应用程序引擎和DAO单元测试一起愉快地工作

目标是能够运行一个简单的DAO单元测试,创建一个实体,然后用一个简单的查找再次加载它,以检查它是否被正确创建——所有这些都来自我的maven构建

我的dao使用JPA实体管理器查询、持久化等

我已经让它与hsqldb和数据源等一起工作没有问题,但我正在努力让它与appengine一起工作

我的问题是:

1我正在使用一个实体管理器,注入我的持久性单元,如下所示。可以吗?是否需要数据源或其他特殊的东西?我想如果我错了,就纠正我

applicationContext.xml

    <bean id='entityManagerFactory' class='org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean'>
     <property name="persistenceUnitName" value="transactions-optional" />
    </bean>
Persistence.xml

   <persistence-unit name="transactions-optional">
    <provider>org.datanucleus.store.appengine.jpa.DatastorePersistenceProvider</provider>
    <properties>
        <property name="datanucleus.NontransactionalRead" value="true"/>
        <property name="datanucleus.NontransactionalWrite" value="true"/>
        <property name="datanucleus.ConnectionURL" value="appengine"/>
    </properties>
   </persistence-unit>
2为了能够使用entityManager运行单元测试,我需要向pom文件中添加哪些依赖项?版本呢?我发现了很多关于appengine api实验室/存根/测试的东西,但是没有一个能让它们工作,也就是说,当我使用JPA时,我发现jdo依赖性丢失了。。。当我尝试添加一些jar和datanucleus之类的东西时,我也会遇到很多冲突

到目前为止,我正在尝试appengine-api-1.0-sdk v1.7.0->ASM all v3.3->datanucleus core/api jpa/enhancer v3.1.0->datanucleus appengine v2.0.1.1和所有gae测试jars v1.7.0

3我是否需要向我的surefire插件测试运行程序添加任何内容,以确保它能够获取所有依赖项?我在DatastorePersistenceProvider上得到了一个令人精疲力尽的ClassNotFound,而它在我的类路径中,我检查了JAR和mvn dependency:tree

我看了一下,但它似乎根本不起作用:

4我是否需要使用任何sot的localhelper来测试我的DAO?理想情况下,我希望使用实体管理器测试我的dao层。。。你怎么看?有人在google app engine上使用JPA运行过单元测试吗

5我需要在pom文件中的某个地方设置任何类型的gae.home吗?有人会把它当作插件或什么的吗

6如果我不使用gwt,gwt maven插件是否有用?我正在使用appengine而不是gwt应用程序编写一个简单的Web服务

任何帮助都将不胜感激,因为我已经挣扎了两天了

干杯,
V.

为什么您要尝试使用GAE JPA插件的v1?v2.0.1.1是最新的版本,而v1确实非常古老。老实说,我并不介意。V1.x就可以了。我可以看到v2仍然是实验性的,我不需要v2的任何特性。我只需要一些稳定的东西…FWIW。没有v2不是实验性的,通过的测试比v1更多,并且从发布到6个月前是稳定的。v2的依赖关系在Maven central repo ok中的POM中列出得非常清楚。我可以试试看。你有没有试过让任何单元测试使用它?它是使用单元测试开发的。他们是公开的,他们测试它支持的一切。他们都通过了为什么你要使用GAE JPA插件的v1?v2.0.1.1是最新的版本,而v1确实非常古老。老实说,我并不介意。V1.x就可以了。我可以看到v2仍然是实验性的,我不需要v2的任何特性。我只需要一些稳定的东西…FWIW。没有v2不是实验性的,通过的测试比v1更多,并且从发布到6个月前是稳定的。v2的依赖关系在Maven central repo ok中的POM中列出得非常清楚。我可以试试看。你有没有试过让任何单元测试使用它?它是使用单元测试开发的。他们是公开的,他们测试它支持的一切。他们都通过了