问题描述
我正在尝试在 Maven 构建期间将测试数据加载到测试数据库中以进行集成测试.persistence.xml 被正确复制到 target/test-classes/META-INF/
,但是在运行测试时出现此异常.
I'm trying to load test data into a test DB during a maven build for integration testing. persistence.xml is being copied to target/test-classes/META-INF/
correctly, but I get this exception when the test is run.
javax.persistence.PersistenceException:没有持久性提供程序EntityManager 命名为目标数据库
javax.persistence.PersistenceException: No Persistence provider for EntityManager named aimDatabase
它似乎没有找到或加载persistence.xml.
It looks like it's not finding or loading persistence.xml.
推荐答案
刚刚用一个基于 Maven/Eclipse 的 JPA 项目解决了同样的问题.
Just solved the same problem with a Maven/Eclipse based JPA project.
我的 META-INF 目录位于 src/main/java
下,因为在测试阶段之前它没有复制到目标目录.
I had my META-INF directory under src/main/java
with the concequence that it was not copied to the target directory before the test phase.
将此目录移动到 src/main/resources
解决了问题,并确保 META-INF/persistence.xml
文件存在于 target/classes
运行测试的时间.
Moving this directory to src/main/resources
solved the problem and ensured that the META-INF/persistence.xml
file was present in target/classes
when the tests were run.
我认为 JPA 方面将我的 META-INF/persistence.xml
文件放在 src/main/java
中,结果证明成为我问题的根源.
I think that the JPA facet put my META-INF/persistence.xml
file in src/main/java
, which turned out to be the root of my problem.
这篇关于在 Maven 测试期间未找到 persistence.xml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!