2016-06-22 2 views
0

Я использую intelliJ для запуска теста arquillian junit.Конфигурирование контейнера Мануэля IntelliJ Arquillian Wildfly

Проблема мой тест работает с командой Maven, но не с arquillian

mvn package -P=arq-wildlfy-managed 

Вот мой п:

<dependencyManagement> 
    <dependencies> 

     <!-- Arquillian BOM (Bill Of Materials). --> 
     <dependency> 
      <groupId>org.jboss.arquillian</groupId> 
      <artifactId>arquillian-bom</artifactId> 
      <version>${version.org.jboss.arquillian}</version> 
      <scope>import</scope> 
      <type>pom</type> 
     </dependency> 

     <!-- JUnit regression testing framework. --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>${version.junit}</version> 
     </dependency> 

    </dependencies> 
</dependencyManagement> 

<profiles> 

    <!-- Arquillian WildFly managed profile --> 
    <profile> 
     <id>arq-wildfly-managed</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <dependencies> 
      <dependency> 
       <groupId>org.wildfly</groupId> 
       <artifactId>wildfly-arquillian-container-managed</artifactId> 
       <version>${version.org.wildfly}</version> 
       <scope>test</scope> 
      </dependency> 
     </dependencies> 
     <build> 
      <testResources> 
       <testResource> 
        <directory>src/test/resources</directory> 
       </testResource> 
      </testResources> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>unpack</id> 
          <phase>process-test-classes</phase> 
          <goals> 
           <goal>unpack</goal> 
          </goals> 
          <configuration> 
           <artifactItems> 
            <artifactItem> 
             <groupId>org.wildfly</groupId> 
             <artifactId>wildfly-dist</artifactId> 
             <version>${version.org.wildfly}</version> 
             <type>zip</type> 
             <overWrite>false</overWrite> 
             <outputDirectory>${project.build.directory}</outputDirectory> 
            </artifactItem> 
           </artifactItems> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

    <!-- Arquillian WildFly remote profile --> 
    <profile> 
     <id>arq-widlfly-remote</id> 
     <dependencies> 
      <dependency> 
       <groupId>org.wildfly</groupId> 
       <artifactId>wildfly-arquillian-container-remote</artifactId> 
       <version>${version.org.wildfly}</version> 
       <scope>test</scope> 
      </dependency> 
     </dependencies> 
    </profile> 

</profiles> 

<dependencies> 

    <!-- JUnit regression testing framework. --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
    </dependency> 

    <!-- JUnit Container Implementation for the Arquillian Project --> 
    <dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.arquillian.protocol</groupId> 
     <artifactId>arquillian-protocol-servlet</artifactId> 
     <scope>test</scope> 
    </dependency> 


</dependencies> 

XML-файл arquillian:

<arquillian xmlns="http://jboss.org/schema/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"> 

<!-- Sets the protocol which is how Arquillian talks and executes the tests inside the container --> 
<defaultProtocol type="Servlet 3.0" /> 

<!-- Configuration to be used when the WidlFly remote profile is active --> 
<container qualifier="widlfly-remote"> 
    <configuration> 
     <property name="managementAddress">127.0.0.1</property> 
     <property name="managementPort">9990</property> 
     <property name="username">admin</property> 
     <property name="password">admin</property> 
    </configuration> 
</container> 

<!-- Configuration to be used when the WildFly managed profile is active --> 
<container qualifier="widlfly-managed" default="true"> 
    <configuration> 
     <property name="jbossHome">${jbossHome:target/wildfly-8.1.0.Final}</property> 
     <property name="allowConnectingToRunningServer">false</property> 
     <property name="javaVmArguments">-Djboss.socket.binding.port-offset=10000 -Xms512m -Xmx1024m -XX:MaxPermSize=512m</property> 
     <property name="managementPort">19990</property> 
    </configuration> 
</container> 

Я хотел бы запустить Junk test arquillian из intelliJ. Я не знаю, как я могу сконфигурировать контейнер мануэла, чтобы аркиллиан указал на контейнер дикой природы в \ target \ wildfly-8.1.0.Final.

enter image description here

Когда я запускаю тест с этим контейнером Мануэль, у меня есть эта ошибка.

org.jboss.arquillian.container.spi.ConfigurationException: jbossHome 'target/wildfly-8.1.0.Final' must exist 

at org.jboss.arquillian.container.spi.client.deployment.Validate.configurationDirectoryExists(Validate.java:139) 
at org.jboss.as.arquillian.container.DistributionContainerConfiguration.validate(DistributionContainerConfiguration.java:99) 
at org.jboss.as.arquillian.container.managed.ManagedContainerConfiguration.validate(ManagedContainerConfiguration.java:73) 
at org.jboss.arquillian.container.impl.ContainerImpl.createDeployableConfiguration(ContainerImpl.java:115) 
at org.jboss.arquillian.container.impl.ContainerImpl.setup(ContainerImpl.java:181) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:149) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$7.perform(ContainerLifecycleController.java:145) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:255) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainer(ContainerLifecycleController.java:144) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) 
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:62) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:55) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachContainer(ContainerLifecycleController.java:209) 
at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainers(ContainerLifecycleController.java:54) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) 
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) 
at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:85) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) 
at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:65) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94) 
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:145) 
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:116) 
at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:68) 
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:104) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:160) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

Любые подсказки?

ответ

2

Я нашел, как я могу запустить Junit Test Arquillian с контейнером Manuel.

Во-первых,

  • Вы должны указать, что будет работать JUnit с ручной контейнер

  • Держите ручную настройку пустой

В arquillian XML добавить :

<property name="jbossHome">${project.basedir}\target\wildfly-8.1.0.Final</property> 

Тогда на ПОМ оных:

<build> 
<testResources> 
<testResource> 
<directory>src/test/resources</directory> 
<filtering>true</filtering> 
</testResource> 

Затем Запустите тест arquillian JUnit

enter image description here

1

У меня была такая же проблема.

Вы можете добавить новую конфигурацию вручную в intellij через кнопку конфигурации. После этого вы можете добавить (с помощью кнопки +) ручную конфигурацию, как показано на рисунке. В конфигурации вручную я добавил переменную среды JBOSS_HOME с указанием пути к местоположению wildfly и отключил java-свойство module.path. См. Также изображение.

intellij configuration