testNG项目通过idea Terminal命令行执行

背景:

本地编写的很多testNG测试用例,可能需要对接其他人员,运用其他形式执行,例如将测试用例达成jar包,由运维执行,需要提供执行命令,提供前需要本地先验证是否可执行通过。

 

一、maven配置

1.官网下载maven(https://maven.apache.org/download.cgi),下载最新版本,解压到制定文件夹:

testNG项目通过idea Terminal命令行执行

 

   2.配置环境变量,以win10为例:

      新建系统变量MAVEN_HOME,填写下载解压后的文件地址,注意是bin目录的上一级目录

  testNG项目通过idea Terminal命令行执行

 

       编辑Path变量,在末尾加上:

testNG项目通过idea Terminal命令行执行

 

 3.检验,cmd,进入终端,输入mvn -v ,显示以下信息说明配置完成

testNG项目通过idea Terminal命令行执行

 

 

二、Idea执行配置【注意配置好maven/jdk环境(JDK下载参照以前教程)变量后需要重启idea】

     1.在pom.xml引入依赖:

        

 <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <testSourceDirectory>src/main/java</testSourceDirectory>
        <finalName>${project.artifactId}</finalName>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>7</source>
                    <target>7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.6</version>
               <!--jar-->
                <configuration>
                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/1.8.10/aspectjweaver-1.8.10.jar"
                    </argLine>
                    <testFailureIgnore>true</testFailureIgnore>
                    <!-- <testNGArtifactName>org.testng:testng</testNGArtifactName>-->
                    <forkMode>once</forkMode>
                    <!--<skipTests>true</skipTests>-->

                    <skipTests>false</skipTests>
                    <suiteXmlFiles>
                        <suiteXmlFile>suites/test.xml</suiteXmlFile>
                    </suiteXmlFiles>

                        <properties>
                            <property>
                                <name>usedefaultlisteners</name>
                                <value>false</value>
                            </property>
                            <property>
                                <name>listener</name>
                                <value>org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter</value>
                            </property>
                        </properties>
                        <forkMode>always</forkMode>
                </configuration>
               <!--jar-->
               <dependencies>
               <dependency>
                   <groupId>org.aspectj</groupId>
                   <artifactId>aspectjweaver</artifactId>
                   <version>1.8.10</version>
               </dependency>
              </dependencies>
            </plugin>
            <!--jar-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>com.uiautotest.platformsys.JavaRunXml</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <!-- put your configurations here -->
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <manifestEntries>
                                <Main-Class>org.testng.TestNG</Main-Class>
                            </manifestEntries>
                        </transformer>
                    </transformers>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
	    </plugins>
    </build>		

  

      2.在Terminal执行:mvn clean test -Dsurefire.suiteXmlFiles=suites/test.xml,即可执行成功。   或者直接执行 mvn test【执行的suites/test.xml已经通过上述的pom.xml配置过了,所以可以直接执行】

testNG项目通过idea Terminal命令行执行

 

 

3.执行命令其实来源于maven  helper依赖:

testNG项目通过idea Terminal命令行执行

 

上一篇:IDEA 中找不到 Terminal 的解决方式


下一篇:IDEA运行算法(第4版)的环境配置及通过Terminal执行的设置