Тесты Arquillian/JUnit запускаются из консоли, но не внутри Eclipse

Я настроил наш проект с некоторыми тестами JUnit, которые запускаются Arquillian внутри полного сервера JBoss (внутри профиля с именем jboss-remote-6). Я почти все сделал как в руководстве на http://docs.jboss.org/arquillian/reference/latest/en-US/html/gettingstarted.html.

Если я выполняю mvn test в консоли, все выполняется правильно и утверждения проверяются.

Но когда я пытаюсь запустить тестовый пример JUnit внутри Eclipse, он терпит неудачу со следующим исключением:

org.jboss.arquillian.impl.client.deployment.ValidationException: DeploymentScenario contains targets not maching any defined Container in the registry. _DEFAULT_
    at  org.jboss.arquillian.impl.client.deployment.DeploymentGenerator.validate(DeploymentGenerator.java:95)
    at org.jboss.arquillian.impl.client.deployment.DeploymentGenerator.generateDeployment(DeploymentGenerator.java:77)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
(...)

Я правильно настроил профиль Maven для этого проекта на «jbossas-remote-6», как указано в файле pom.xml. Что я делаю неправильно? Google не может помочь в этом конкретном случае.

С уважением, Себастьян


person Sebastian Wramba    schedule 22.07.2011    source источник


Ответы (2)


Есть разные вещи, которые я сделал, чтобы заставить эту работу работать. Моим образцом для подражания был архетип jboss-javaee6 Maven, который также использует Arquillian для модульного тестирования кода на удаленном сервере JBoss 6. Я сделал следующие шаги:

Добавить arquillian.xml

Я добавил файл Arquillian.xml в src/test/resources:

<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns="http://jboss.com/arquillian" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://jboss.org/schema/arquillian
    http://jboss.org/schema/arquillian/arquillian-1.0.xsd">

   <container qualifier="jbossas-remote" default="true">
       <property name="httpPort">8080</property>
   </container>   
</arquillian>

Упаковка WebArchive вместо JavaArchive

Использование return Shrinkwrap.create( WebArchive.class, "test.war") вместо JavaArchive.class сделало доступным метод addAsWebInfResource(), куда я мог добавить пустой сгенерированный файл beans.xml.

Исправьте pom.xml, чтобы уменьшить длину CLASSPATH

Eclipse постоянно ломался из-за того, что javaw.exe выдавал сообщение CreateProcess error=87. Это было вызвано слишком длинным CLASSPATH для консольной команды. Поскольку зависимость jboss-as-client добавила миллионы зависимостей, я изменил ее на jboss-as-profileservice-client, которая отлично работает и имеет гораздо меньше зависимостей.

Еще одна важная вещь — иметь файл jndi.properties в каталоге src/test/resources, как указано в документации Arquillian. Но это уже было здесь. Я предполагаю, что arquillian.xml имел значение - этот файл никогда не упоминался в документах, просто видел его в архетипе.

Это мой профиль Maven для удаленного тестирования JBoss:

<profile>
  <id>jbossas-remote-6</id>
  <dependencies>
     <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-jbossas-remote-6</artifactId>
        <version>1.0.0.Alpha5</version>            
     </dependency>
    <dependency>
        <groupId>org.jboss.spec</groupId>
        <artifactId>jboss-javaee-6.0</artifactId>
        <version>2.0.0.Final</version>
        <type>pom</type>
        <scope>provided</scope>
    </dependency> 
    <dependency>
        <groupId>org.jboss.jbossas</groupId>
        <artifactId>jboss-as-profileservice-client</artifactId>
        <version>6.0.0.Final</version>
        <type>pom</type>            
    </dependency>
  </dependencies>
<build>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
        </testResource>
    </testResources>
</build>

I hope my answer will be useful to somebody. :)

person Sebastian Wramba    schedule 25.07.2011

Обратите внимание, что существует также открытая проблема, связанная с выполнением тестов в Eclipse: https://issues.jboss.org/browse/ARQ-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

person peater    schedule 18.04.2013