无法测试 jpa/maven 项目。当我从命令行运行“mvn cleant test”时,出现错误“javax.persistence.PersistenceException: No Persistence provider for EntityManager named xxx”。我有一个 Java SE 项目。
我在“src/test/resources/META-INF/persistence.xml”中有持久性配置。我也有同样的'src/main/...'。我可以在“target/classes/META-INF”中看到 persistence.xml。只有那来自主要,而不是来自我运行测试时的测试。这还不是问题,因为两者都应该工作。第一次尝试 JPA,但正如我所见,文件应该没问题(位置和内容)。
持久性单元名称也应该匹配。
我将 Eclipse (EE) 与 m2 和其他必要的插件一起使用,但从命令行运行 maven。我在项目中没有看到任何错误。
// 更新
尝试修复 maven 构建,因为我注意到它应该在“目标/测试类”中有测试类和资源。将命令更改为“mvn clean test-compile test” 现在可以从正确的位置找到资源,但我仍然遇到同样的错误。
// 更新
为清楚起见,这里是完整的 persistence.xml
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="xxx"
transaction-type="RESOURCE_LOCAL">
<provider>my.package.EntityManagerFactoryHelper</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/db" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="yyy" />
<property name="javax.persistence.jdbc.password" value="zzz" />
<property name="eclipselink.ddl-generation" value="DROP_AND_CREATE" />
</properties>
</persistence-unit>
我从其他帖子中获取了帮助示例。基本上它只是使用“xxx”持久单元创建电动势。这是助手类。http://pastebin.com/1GE6uMa1