从Eclipse运行时,Junit测试未找到系统属性

时间:2015-12-23 17:14:05

标签: eclipse maven junit wildfly jboss-arquillian

我尝试使用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运行设置。)

对于语法错误,我很少使用我的英语知识。

2 个答案:

答案 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测试用例,这样我就可以运行我想要的测试。