【问题标题】:Junit test not found system property when run from Eclipse从 Eclipse 运行时,Junit 测试未找到系统属性
【发布时间】:2016-03-30 04:22:59
【问题描述】:

我尝试根据本教程使用 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 系统变量是由 surefire 插件设置的,但我不明白为什么 eclipse 不能使用 pom.xml 中的这个变量。

我正在为这个问题寻找一个明确的解决方案。 (如果可能我想使用 Eclipse 从 pom.xml 中读取此配置,而不是配置 Eclipse 运行设置。)

抱歉语法错误,我很少使用我的英语知识。

【问题讨论】:

    标签: eclipse maven junit wildfly jboss-arquillian


    【解决方案1】:

    AFAIK JUnit Eclipse 运行程序与 Maven 无关,这就是它找不到您的环境变量的原因。

    但是...只要您将项目作为 maven 项目导入,Eclipse 就有 m2e 插件并且您的测试类有 *Test 的名称,您应该能够通过执行以下操作来运行您的 JUnit 测试:

    Alt-Click SomeNameTest.java Run as -> Maven Test
    

    【讨论】:

    • 感谢您的重播,但我认为这个解决方案有点复杂。例如,如果我想调试单个 JUnit 测试方法,则需要更多配置才能从 eclipse 中调试测试。我尝试使用 Eclipse 运行配置并设置环境变量,但是当我尝试运行其他测试时,我需要再次设置变量。
    • 我同意这很复杂,不幸的是 Eclipse JUnit 插件对 maven 一无所知。 :( 抱歉,这不是您要找的答案。
    【解决方案2】:

    我解决了这个问题,使用正在开发和测试的远程wildfly容器。它运行测试很快,在 Eclipse 中,单击 Run as Junit 测试用例,这样我就可以运行我想要的测试。

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 2012-06-15
      • 2013-12-02
      • 2012-06-02
      • 2020-03-25
      • 2017-08-30
      • 2020-04-11
      • 1970-01-01
      • 2011-01-20
      相关资源
      最近更新 更多