开发者

Arquillian/JUnit tests run from console but not inside Eclipse

开发者 https://www.devze.com 2023-03-22 01:53 出处:网络
I\'ve setup our project with some JUnit tests that are run by Arquillian inside the full JBoss Server (inside a profile called jboss-remote-6). I pretty much did everything as in the manual at http://

I've setup our project with some JUnit tests that are run by Arquillian inside the full JBoss Server (inside a profile called jboss-remote-6). I pretty much did everything as in the manual at http://docs.jboss.org/arquillian/reference/latest/en-US/html/gettingstarted.html.

If I execute mvn test in the console, everything is properly executed and the assertions are checked.

But when I try to run the JUnit test case inside Eclipse, it fails with the following exception:

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:2开发者_运维问答5)
    at java.lang.reflect.Method.invoke(Method.java:597)
(...)

I set up the Maven profile for this project correctly to "jbossas-remote-6" as stated in the pom.xml. What am I doing wrong? Google coulnd't help on this specific one.

Best regards, Sebastian


There are various things I did to make this work. My role model was the jboss-javaee6 Maven archetype, which is also using Arquillian for unit testing the code in a remote JBoss 6 server. I did the following steps:

Add arquillian.xml

I added the Arquillian.xml in 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>

Shrinkwrap a WebArchive instead of JavaArchive

Using return Shrinkwrap.create( WebArchive.class, "test.war") instead of the JavaArchive.class made the method addAsWebInfResource() method available, where I could add the empty generated beans.xml.

Adjust pom.xml to reduce CLASSPATH length

Eclipse was constantly breaking with javaw.exe giving a CreateProcess error=87 message. This was caused by the CLASSPATH being too long for the console command. Since the dependency jboss-as-client added Bazillions of dependencies, I changed it to jboss-as-profileservice-client which works fine and has a lot less dependencies.

Another important thing is to have a jndi.properties file in the src/test/resources directory, as stated in the Arquillian docs. But that was already the case here. I guess the arquillian.xml made the difference - this file was never mentioned in the docs, just saw it in the archetype.

This is my Maven profile for remote JBoss testing:

<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. :)


Note there is also an open issue related to running tests in Eclipse: https://issues.jboss.org/browse/ARQ-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

0

精彩评论

暂无评论...
验证码 换一张
取 消