在 Maven 测试期间未找到 persistence.xml

2022-01-14 00:00:00 testing automated-tests java jpa maven-2

我正在尝试在 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.

相关文章