【问题标题】:Arquillian IT-Test Hibernate enhanceArquillian IT-Test Hibernate 增强
【发布时间】:2017-11-10 03:54:08
【问题描述】:

我正在尝试实施一些 IT 测试。我正在使用 Arquillian。我可以与 Shrinkwrap 进行一场战争,而且一切似乎都正常进行。

我的问题,实体类没有从 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 测试

【问题讨论】:

  • 您似乎没有使用 Hibernate。在我看来,它就像 OpenJPA。
  • 你是对的。在测试战中没有正确配置 Hibernate。谢谢!

标签: java hibernate jakarta-ee jboss-arquillian shrinkwrap


【解决方案1】:

我自己找到了解决方案。我忘记将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;
}

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2012-09-10
    • 2011-11-08
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多