Joh*_*pel 5 junit java-ee jboss-arquillian wildfly
我正在尝试运行一个简单的测试用例:
我只想mvn test在一个新的,下载的Wildfly容器中运行一个简单的测试用例.
该文档说,对于嵌入式的情况下,Maven的依赖,插件的unpack目标,可以用来下载Wildfly并自动将其解压缩.
我希望管理容器以确保为Arquillian本身管理的测试用例提供单独的JVM .
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
[ERROR]
/home/me/playground/arquillian-tutorial/src/test/java/org/arquillian/example/ATest.java:[3,19]
error: package javax.inject does not exist
Run Code Online (Sandbox Code Playgroud)
...即找不到类.
我的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>
Run Code Online (Sandbox Code Playgroud)
我很迷惑.我无法找到一个简单的设置来以适当的方式通过Arquillian/Wildfly运行测试用例.你有任何想法,提示或链接吗?
我强烈建议不要自动下载包含服务器的 .zip 文件,而是自行提供服务器实例。
我可以在我的 test/resource/arquillian.xml 中做到这一点
是的,那就是这样做的方法。
另一种方法是配置 Surefire-plugin
不需要。只是不要忘记在 pom 中提供 Arquillian.xml 文件作为测试资源:
<testResources>
<testResource>
<directory>path/to/resources</directory>
</testResource>
Run Code Online (Sandbox Code Playgroud)
你能发布你的测试用例代码吗?我有兴趣看看你的@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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5850 次 |
| 最近记录: |