Arquillian IT-Test Hibernate 增强
Arquillian IT-Test Hibernate enhance
我正在尝试实施一些 IT 测试。我正在使用 Arquillian。我可以使用 Shrinkwrap 构建一个 war 并且一切似乎都正常工作。
我的问题,实体 类 没有从 Hibernate 得到增强,因此测试失败。
我的代码:
WebArchive war = ShrinkWrap.create(WebArchive.class)
.addPackages(true, "x.y.z.acme")
错误:
Caused by: org.jboss.arquillian.test.spi.ArquillianProxyException:
org.apache.openjpa.persistence.ArgumentException : The type "class
x.y.z.acme.persistence.entity.AnEntity" has not been enhanced.
[Proxied because : Original exception caused: class
java.lang.ClassNotFoundException:
org.apache.openjpa.persistence.ArgumentException]
我该如何解决这个问题?最好不要使用第二个项目进行 IT 测试
我自己找到了解决办法。我忘记将 persistence.xml 添加到 WebArchive。我的 @Deployment
方法现在看起来像这样:
@Deployment
public static WebArchive createJavaTestArchive() throws IOException {
WebArchive war = ShrinkWrap.create(WebArchive.class)
.addPackages(
true,
"x.y.z.acme",
"javax.persistence" // Tomee does not contain JPA2.1
)
;
File beansXml = new File("src/main/resources/META-INF/beans.xml");
war.addAsManifestResource(beansXml, "beans.xml");
File persistenceXm = new File("src/test/resources/test-persistence.xml");
war.addAsResource(persistenceXm, "META-INF/persistence.xml");
war.addAsResource(new File("src/main/resources/import.sql"));
File[] libs = Maven.resolver().loadPomFromFile("pom.xml")
.importRuntimeDependencies().resolve().withTransitivity().asFile();
war.addAsLibraries(libs);
System.out.print(war.toString(true));
return war;
}
我正在尝试实施一些 IT 测试。我正在使用 Arquillian。我可以使用 Shrinkwrap 构建一个 war 并且一切似乎都正常工作。
我的问题,实体 类 没有从 Hibernate 得到增强,因此测试失败。
我的代码:
WebArchive war = ShrinkWrap.create(WebArchive.class)
.addPackages(true, "x.y.z.acme")
错误:
Caused by: org.jboss.arquillian.test.spi.ArquillianProxyException:
org.apache.openjpa.persistence.ArgumentException : The type "class
x.y.z.acme.persistence.entity.AnEntity" has not been enhanced.
[Proxied because : Original exception caused: class
java.lang.ClassNotFoundException:
org.apache.openjpa.persistence.ArgumentException]
我该如何解决这个问题?最好不要使用第二个项目进行 IT 测试
我自己找到了解决办法。我忘记将 persistence.xml 添加到 WebArchive。我的 @Deployment
方法现在看起来像这样:
@Deployment
public static WebArchive createJavaTestArchive() throws IOException {
WebArchive war = ShrinkWrap.create(WebArchive.class)
.addPackages(
true,
"x.y.z.acme",
"javax.persistence" // Tomee does not contain JPA2.1
)
;
File beansXml = new File("src/main/resources/META-INF/beans.xml");
war.addAsManifestResource(beansXml, "beans.xml");
File persistenceXm = new File("src/test/resources/test-persistence.xml");
war.addAsResource(persistenceXm, "META-INF/persistence.xml");
war.addAsResource(new File("src/main/resources/import.sql"));
File[] libs = Maven.resolver().loadPomFromFile("pom.xml")
.importRuntimeDependencies().resolve().withTransitivity().asFile();
war.addAsLibraries(libs);
System.out.print(war.toString(true));
return war;
}