Search code examples
jboss-arquillian

Exception when using ArquillianSuiteExtension with Tomcat Container


I am trying to run test suites in Single deployment. I came across the ArquillianSuite extension on github developed by Ingwars. Following the steps specified there gives me a huge exception.

PFB my project specification

Arquillian Version : 1.0.0-Final Arquillian Suite Extension Version : 1.1.1 Apache Tomcat version : 7.0.3 JUnit : 4.11 JBoss Weld Servlet : 1.1.8

1 Deployment class with annotation @ArquillianSuiteExtension and one method in that class with extension @Deployment. 1 test class with two JUNit tests.

Running the test class gives me exception as specified in the link http://pastebin.com/P7NrsHbr

Where am I making a mistake?

Arquillian.xml has the following code

<extension qualifier="suite">
    <property name="deploymentClass">org.arquillian.example.Deployments</property>
</extension>

   <container qualifier="tomcat" default="true">
       <configuration>
           <property name="tomcatHome">target/tomcat-embedded-7</property>
           <property name="workDir">work</property>
           <property name="bindHttpPort">8070</property>
           <property name="unpackArchive">true</property>
       </configuration>
   </container>

POM.XML has the following code

<groupId>org.arquillian.example</groupId>
<artifactId>arquillian-tutorial</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>arquillian-tutorial</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <version.org.apache.tomcat>7.0.32</version.org.apache.tomcat>
    <version.org.eclipse.jdt.core.compiler>3.7</version.org.eclipse.jdt.core.compiler>
    <version.weld_servlet>1.1.8.Final</version.weld_servlet>
    <version.arquillian_core>1.0.0.Final</version.arquillian_core>
    <version.jboss_spec>1.0.0.Final</version.jboss_spec>
</properties>

<dependencies>
    <!-- org.jboss.arquillian -->
    <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-container-spi</artifactId>
        <version>1.0.3.Final</version>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.protocol</groupId>
        <artifactId>arquillian-protocol-servlet</artifactId>
        <version>1.0.3.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.arquillian.testenricher</groupId>
        <artifactId>arquillian-testenricher-cdi</artifactId>
        <version>1.0.3.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.arquillian.testenricher</groupId>
        <artifactId>arquillian-testenricher-resource</artifactId>
        <version>1.0.3.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.arquillian.testenricher</groupId>
        <artifactId>arquillian-testenricher-initialcontext</artifactId>
        <version>1.0.3.Final</version>
    </dependency>

    <!-- org.apache.tomcat -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>${version.org.apache.tomcat}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <version>${version.org.apache.tomcat}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-logging-juli</artifactId>
        <version>${version.org.apache.tomcat}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jdt.core.compiler</groupId>
        <artifactId>ecj</artifactId>
        <version>${version.org.eclipse.jdt.core.compiler}</version>
        <scope>provided</scope>
    </dependency>

    <!-- org.eu.ingwar.tools.arquillian.suite.extension.ArquillianSuiteExtension -->
    <dependency>
        <groupId>org.eu.ingwar.tools</groupId>
        <artifactId>arquillian-suite-extension</artifactId>
        <version>1.1.1</version>
        <scope>test</scope>
    </dependency>

    <!-- testing -->
     <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
        <version>1.0.3.Final</version>
        <scope>test</scope>
    </dependency>

     <!--  <dependency>
        <groupId>org.jboss.arquillian.testng</groupId>
        <artifactId>arquillian-testng-container</artifactId>
        <version>1.0.3.Final</version>
        <scope>test</scope>
    </dependency> -->
    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
        <version>1.0.0-beta-6</version>
        <!--  2.0.0-beta-4 is not working  ** we are using old version -->
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-impl-javaee</artifactId>
        <version>2.0.0-alpha-5</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-api-maven</artifactId>
        <version>1.0.0-beta-6</version>
    </dependency>

    <dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-depchain</artifactId>
<type>pom</type>
<version>2.0.0-beta-2</version>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.1.1</version>
      <scope>test</scope>
    </dependency>

    <!-- org.jboss.weld.resources.ManagerObjectFactory -->
    <dependency>
        <groupId>org.jboss.weld.servlet</groupId>
        <artifactId>weld-servlet</artifactId>
        <version>${version.weld_servlet}</version>
        <scope>test</scope>
    </dependency>


    <!--
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.1.6.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.3.0.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.2.2.Final</version>
    </dependency>

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.3.171</version>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-dbcp</artifactId>
        <version>7.0.40</version>
    </dependency>-->



    <!-- <dependency>
        <groupId>org.jboss.arquillian</groupId>
        <artifactId>arquillian-bom</artifactId>
        <version>${version.arquillian_core}</version>
        <type>pom</type>
        <scope>test</scope>
    </dependency> -->
    <!-- <dependency>
        <groupId>org.jboss.arquillian</groupId>
        <artifactId>arquillian-build</artifactId>
        <version>${version.arquillian_core}</version>
        <type>pom</type>
        <scope>test</scope>
    </dependency> -->

    <!-- <dependency>
        <groupId>org.jboss.spec.javax.servlet</groupId>
        <artifactId>jboss-servlet-api_3.0_spec</artifactId>
        <version>${version.jboss_spec}</version>
        <scope>test</scope>
    </dependency>

-->

    <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-tomcat-embedded-7</artifactId>
        <scope>test</scope>
        <version>1.0.0.CR4</version>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-tomcat-common</artifactId>
        <scope>test</scope>
        <version>1.0.0.CR4</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.20.0</version>
    </dependency>

</dependencies>

Where am I making a mistake? Please help.


Solution

  • The issue was fixed by adding the following lines of code to pom.xml

        <dependencies>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>${version.arquillian_core}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>