Arquillian を使用して JPA リポジトリ クラスをテストしようとしています。ただし、persistence.xmlが見つからないというnullpointer例外のみが発生します。標準の Maven プロジェクトでどのように構成しますか?
3 に答える
ShrinkWrap デプロイメントの正しいパスに persistence.xml が含まれていないようです。persistence.xml ファイルは、JAR の META-INF ディレクトリ、または WAR の WEB-INF/META-INF ディレクトリに配置する必要があります。これは、次の 2 つの方法で確認できます。
メソッドの詳細フラグを介して
Archive.toString(...)
:あなたの方法では、次のような方法
@Deployment
を使用して、アーカイブの内容を印刷できますtoString
@Deployment public static Archive<?> createDeployment() { WebArchive war = ShrinkWrap.create(WebArchive.class).addClasses(Foo.class); System.out.println(war.toString(true)); return war; }
生成されたデプロイメントをディスクに書き込むように Arquillian を構成します。
次のように、プロパティ
engine
を使用して arquillian.xml に構成要素を追加できます。deploymentdeploymentExportPath
<engine> <property name="deploymentExportPath">target/deployment</property> </engine>
これにより、Arquillian は生成したデプロイメントを Maven によって生成されたターゲット ディレクトリの下のサブディレクトリに書き込むように指示されます。
Have you looked @ the official documentation here. The project structure suggests that its built using Maven.
If you still run into issues do post the exception messages.
Good luck!
github のショーケース プロジェクトには、JPA テスト (Arquillian Persistence Extension も使用) を含む多くの例もあります。
うまくいけば、これはあなたを正しい道に導きます:)