我尝试使用Arquillian实现一个简单的CRUD应用程序并使用本教程进行测试:Java EE with Wildfly and Maven。但是当我尝试从Eclipse运行测试时,它抛出: org.jboss.arquillian.container.spi.ConfigurationException:jbossHome'null'必须存在。 但是从命令行,使用mvn clean install,测试运行良好。
我的pom.xml构建部分。
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<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.2.0.Final</version>
<type>zip</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<configuration>
<reuseForks>false</reuseForks>
<forkCount>1</forkCount>
</configuration>
<systemPropertyVariables>
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
<jboss.home>${project.basedir}/target/wildfly-8.2.0.Final</jboss.home>
<module.path>${project.basedir}/target/wildfly-8.2.0.Final/modules</module.path>
</systemPropertyVariables>
<redirectTestOutputToFile>false</redirectTestOutputToFile>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>${version.war.plugin}</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
如果我用maven运行测试,jboss.home系统varibale是由surefire插件设置的,但我无法理解为什么eclipse不能使用pom.xml中的这个变量。
我正在为这个问题寻找一个明确的解决方案。 (如果有可能我想使用Eclipse从pom.xml读取此配置而不配置Eclipse运行设置。)
对于语法错误,我很少使用我的英语知识。
答案 0 :(得分:0)
AFAIK JUnit Eclipse运行器与Maven无关,这就是为什么它无法找到你的环境变量。
但是......只要您将项目导入为maven项目,Eclipse就会有m2e插件,并且您的测试类具有* Test,您可以通过以下方式运行JUnit测试:
let fruits = Immutable.fromJS(['apple', 'apple', 'banana', 'banana', 'banana', 'fidgy', 'grape', 'melon', 'watermelon', 'watermelon']);
答案 1 :(得分:0)
我使用正在开发的远程wildfly容器和测试来解决这个问题。它快速运行测试,在eclipse中,单击Run as Junit测试用例,这样我就可以运行我想要的测试。