项目运行mvn测试但没有运行mvn test -P&lt; <profile_name>&gt;

时间:2018-02-06 09:57:09

标签: maven testng maven-profiles

在发布此问题之前,我已经阅读了大量文章和SO帖子。我创建了2个maven配置文件,每个环境一个。当我通过eclipse运行我的pom.xml时,运行方式&gt; Maven测试,测试执行。但是当我通过Run Configuration执行它时,为此,我创建了一个名为&#34; Test Project&#34;的运行配置。将maven目标设定为&#34; test&#34;和配置文件设置为&#34; staging&#34;,执行正在抛出

  

分叉过程中出错   [错误] com / beust / jcommander / ParameterException:不支持的major.minor版本52.0   [错误] org.apache.maven.surefire.booter.SurefireBooterForkException:分叉进程中出错   [错误] com / beust / jcommander / ParameterException:不支持的major.minor版本52.0

如果它是java版本问题,那么当我执行Run As&gt;时它不应该执行。 Maven测试。

这是我的pom.xml

http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0

<groupId>com.sample</groupId>
<artifactId>TestProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>TestProject</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<profiles>
    <profile>
        <id>staging</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.20</version>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>testng.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>

    <profile>
        <id>prod</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.20</version>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>testng2.xml</suiteXmlFile>
                        </suiteXmlFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

<dependencies>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.11</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/org.uncommons/reportng -->
    <dependency>
        <groupId>org.uncommons</groupId>
        <artifactId>reportng</artifactId>
        <version>1.1.4</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

</dependencies>

除参数值外,testng.xml和testng2.xml都相似。 这是我的testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite verbose="0" name="Test Project suite">
     <parameter name="env" value="staging" /> 
    <test name="Test Project sample tests">
        <classes>
            <class name="com.sample.TestProject.AppTest" />
        </classes>
    </test>
</suite> 

1 个答案:

答案 0 :(得分:0)

请添加如下所示的属性,然后重试。

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

这会导致JDK版本需要设置为1.8。如果您不提供此功能,那么默认情况下,Maven会采用1.5兼容的方式。

当您通过命令行运行时(使用mvn test),这将是必需的。错误是这个问题的重复。

当你执行Run as > maven test时,我猜你的IDE提供的JDK生效了(我没有办法在技术上证实这个理论)。

对于其他上下文,您也可以参考Colorbar stackoverflow帖子。