在maven测试期间找不到persistence.xml

sbl*_*ndy 9 java testing automated-tests maven-2 jpa

我正在尝试在用于集成测试的maven构建期间将测试数据加载到测试数据库中.persistence.xml正在被target/test-classes/META-INF/正确复制,但是在运行测试时我得到了这个异常.

javax.persistence.PersistenceException:没有名为aimDatabase的EntityManager的持久性提供程序

看起来它没有找到或加载persistence.xml.

小智 16

刚刚解决了基于Maven/Eclipse的JPA项目的同样问题.

我的META-INF目录下面src/main/java有一个概念,它在测试阶段之前没有被复制到目标目录.

移动此目录以src/main/resources解决问题并确保META-INF/persistence.xmltarget/classes运行测试时文件存在.

认为 JPA方面把我的META-INF/persistence.xml文件放进去src/main/java,结果证明是我问题的根源.


小智 6

我正在使用Maven2,我忘了在我的pom.xml文件中添加这个依赖项:

 <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-entitymanager</artifactId>
   <version>3.4.0.GA</version>
 </dependency> 
Run Code Online (Sandbox Code Playgroud)


kba*_*eau 2

如果这是在 Windows 上,您可以使用 sysinternal 的 procmon 来查明它是否检查了正确的路径。

只需按路径过滤 -> contains -> persistence.xml。Procmon 将接受任何打开名为 persistenc.xml 的文件的尝试,您可以检查以查看尝试的路径。

有关 procmon 的更多详细信息,请参阅此处:http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx