代码之家  ›  专栏  ›  技术社区  ›  code-a-doodle-do

在Tomcat容器中使用ArquillianSuiteExtension时出现异常

  •  0
  • code-a-doodle-do  · 技术社区  · 10 年前

    我正在尝试在Single部署中运行测试套件。我在github上遇到了Ingwars开发的ArquillianSuite扩展。遵循此处指定的步骤会给我一个巨大的例外。

    PFB我的项目规范

    Arquillian版本:1.0.0-Final Arquillian Suite扩展版本:1.1.1 Apache Tomcat版本:7.0.3 JUnit:4.11 JBoss焊接伺服阀:1.1.8

    1个带有注释@ArquillianSuiteExtension的部署类,以及该类中带有扩展名@Deployment的一个方法。 1个测试类,包含两个JUNit测试。

    运行测试类会导致链接中指定的异常 http://pastebin.com/P7NrsHbr

    我在哪里犯错?

    Arquillian.xml有以下代码

    <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具有以下代码

    <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>
    

    我在哪里犯错?请帮忙。

    1 回复  |  直到 10 年前
        1
  •  0
  •   code-a-doodle-do    10 年前

    通过向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>