gpt4 book ai didi

jakarta-ee - JUnit/Arquillian : Run managed Wildfly 8. 1 个容器

转载 作者:行者123 更新时间:2023-12-03 17:49:21 25 4
gpt4 key购买 nike

我正在尝试运行一个简单的测试用例:

有没有一套干净的说明如何在托管的 Wildfly 8 容器上运行 Java EE 集成测试?

  • 我只想通过 mvn test 运行一个简单的测试用例在一个新的、下载的 Wildfly 容器中。
  • docs对于嵌入式案例,maven-dependency-plugin 的 unpack目标可用于下载 Wildfly 并自动解压缩。
  • 我想让容器管理确保有一个单独的 JVM 用于测试用例,由 Arquillian 本身管理。

  • 现在我必须在哪里引用 Wildfly 文件夹?

    1) 我可以在我的 test/resource/arquillian.xml 内完成通过:
    <container qualifier="arquillian-wildfly8-managed" default="true">
    <configuration>
    <property name="jbossHome">target/wildfly-8.1.0.Final</property>
    <property name="modulePath">target/wildfly-8.1.0.Final/modules</property>
    </configuration>
    </container>

    2)另一种方法是在 pom 文件中配置 surefire-plugin 的系统属性:
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.17</version>
    <configuration>
    <property>
    <name>jboss.home</name>
    <value>${project.basedir}/target/wildfly-8.1.0.Final</value>
    </property>
    <property>
    <name>module.path</name>
    <value>${project.basedir}/target/wildfly-8.1.0.Final/modules</value>
    </property>
    </systemProperties> </configuration> </plugin>

    现在,当我尝试运行测试时,显示错误:
    [ERROR]
    /home/me/playground/arquillian-tutorial/src/test/java/org/arquillian/example/ATest.java:[3,19]
    error: package javax.inject does not exist

    ...即找不到类。

    摘自我的 pom 文件:
    <build>
    <plugins>
    <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
    <source>1.6</source>
    <target>1.6</target>
    </configuration>
    </plugin>
    <plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.17</version>
    </plugin>
    </plugins>
    </build>
    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>org.jboss.arquillian</groupId>
    <version>1.1.5.Final</version>
    <artifactId>arquillian-bom</artifactId>
    <scope>import</scope>
    <type>pom</type>
    </dependency>
    </dependencies>
    </dependencyManagement>

    <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.8.1</version>
    <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>org.jboss.arquillian.junit</groupId>
    <artifactId>arquillian-junit-container</artifactId>
    <!-- <version>1.1.5.Final</version> -->
    <scope>test</scope>
    </dependency>
    </dependencies>

    <profile>
    <id>arquillian-wildfly8-managed</id>
    <dependencies>
    <dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>3.0.1.Final</version>
    <type>pom</type>
    <scope>test</scope>
    </dependency>
    <!-- Required by jboss-javaee-6.0:3.0.2.Final (https://issues.jboss.org/browse/JBBUILD-708) -->
    <dependency>
    <groupId>xalan</groupId>
    <artifactId>xalan</artifactId>
    <version>2.7.1</version>
    <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>org.wildfly</groupId>
    <artifactId>wildfly-arquillian-container-managed</artifactId>
    <version>8.1.0.Final</version>
    <scope>test</scope>
    </dependency>
    </dependencies>
    <build>
    <pluginManagement>
    <plugins>
    <plugin>
    <!-- You need the maven dependency plugin to download locally a zip
    with the server, unless you provide your own, it will download under the
    /target directory -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.8</version>
    <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>8.1.0.Final</version>
    <type>zip</type>
    <overWrite>false</overWrite>
    <outputDirectory>target</outputDirectory>
    </artifactItem>
    </artifactItems>
    </configuration>
    </execution>
    </executions>
    </plugin>
    </plugins>
    </pluginManagement>
    </build>
    </profile>

    我很迷惑。我无法找到一个简单的设置来以适当的方式通过 Arquillian/Wildfly 运行测试用例。您有任何想法、提示或链接吗?

    最佳答案

    我强烈建议不要自动下载包含服务器的 .zip 文件,而是自己提供服务器实例。

    I could do it within my test/resource/arquillian.xml



    是的,这就是这样做的方法。

    Another way would be to configure the surefire-plugin's



    不需要。只是不要忘记在 pom 中提供 Arquillian.xml 文件作为测试资源:
    <testResources>
    <testResource>
    <directory>path/to/resources</directory>
    </testResource>

    你能发布你的测试用例代码吗?我有兴趣看看你的 @Deployment方法。

    您缺少对测试的 EE 实现依赖。
    <dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-7.0</artifactId>
    <version>1.0.0.Final</version>
    <type>pom</type>
    <scope>provided</scope>
    </dependency>

    关于jakarta-ee - JUnit/Arquillian : Run managed Wildfly 8. 1 个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615183/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com