Расширение Arquillian IT-Test Hibernate

Я пытаюсь реализовать некоторое IT-тестирование. Я использую Арквиллиан. Я могу создать войну с помощью 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-тестирования


person Tuxes3    schedule 10.11.2017    source источник
comment
Похоже, вы не используете Hibernate. Для меня это похоже на OpenJPA.   -  person Steve C    schedule 10.11.2017
comment
ты был прав. Спящий режим был неправильно настроен в тестовой войне. Спасибо!   -  person Tuxes3    schedule 10.11.2017


Ответы (1)


Я сам нашел решение. Я забыл добавить файл persistence.xml в веб-архив. Мой метод @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;
}
person Tuxes3    schedule 10.11.2017