私は、Spring、Maven、JPA、Google App Engine、および DAO の単体テストをすべて一緒にうまく機能させることができる単純な環境をまとめようとしています。
目標は、エンティティを作成する単純な DAO 単体テストを実行し、それを単純な検索で再度ロードして、適切に作成されたことを確認できるようにすることです。これはすべて、私の maven ビルドからのものです。
私の dao は JPA エンティティ マネージャー (query()、persist() など) を利用しています。
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-labs/stubs/testing について多くのことを見つけましたが、どれも機能しませんでした。つまり、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 テスト jar v1.7.0
3) すべての依存関係を確実に取得するために、確実なプラグイン (テスト ランナー) に追加する必要があるものはありますか? クラスパスにある間、DatastorePersistenceProvider で ClassNotFound を使い果たしています (jar と mvn の依存関係を確認しました: ツリー)。
私はこれを見ましたが、まったく機能していないようです: http://www.vertigrated.com/blog/2011/02/working-maven-3-google-app-engine-plugin-with- gwt サポート/
4) DAO をテストするために localhelper を使用する必要がありますか? 理想的には、エンティティ マネージャーを使用して「そのまま」dao レイヤーをテストしたいと思います...どう思いますか? Google App Engine で JPA を使用して単体テストを実行できた人はいますか?
5) pom ファイルのどこかに何らかの種類の gae.home を設定する必要がありますか? 誰かがそれを利用しますか(プラグインか何か)?
6) gwt を使用しない場合、gwt-maven プラグインは役に立ちますか? GWT アプリではなく、appengine を使用する単純な Web サービスを作成しています...
私は今2日間苦労しているので、どんな助けも大歓迎です...
乾杯、V.