TestNG+Maven+IDEA环境搭建及用例执行

本文介绍了如何在IntelliJ IDEA中搭建TestNG和Maven环境,创建Maven项目,配置相关依赖和插件,编写测试类和待测类,以及如何执行单个测试方法和通过testNG.xml批量执行测试用例。提供了一个具体的项目目录结构,并给出了Calculate类和CalculateTest测试类的实例。

一、环境搭建的前提:

1.安装JDK

2.安装IntelliJ IDEA

3.IntelliJ IDEA 配置Maven

IntelliJ IDEA 配置Maven可参考如下博客:

使用IntelliJ IDEA 配置Maven(入门)

如何使用IntelliJ IDEA 配置Maven

二、创建Maven项目

(1)File-->new Project 选择Maven-->Next进入New Project窗口,如下图

在New Project窗口中,填写GroupId和ArtifactId后,点击Next。

(2)打开新创建的项目,在pom.xml中导入相关依赖和插件

  <dependencies>
        <!--导入TestNG依赖包-->
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8.21</version>
        </dependency>
        <!-- 导入Mysql数据库链接jar包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.30</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <!-- 一般而言,target与source是保持一致的,
                    但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中不能使用低版本jdk中不支持的语法),
                    会存在target不同于source的情况 -->
                    <source>1.8</source><!-- 源代码使用的JDK版本 -->
                    <target>1.8</target><!-- 需要生成的目标class文件的编译版本 -->
                    <encoding>UTF-8</encoding><!-- 字符集编码 -->
                </configuration>
            </plugin>
            <!---->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.15</version>
                <configuration>
                    <!--<testFailureIgnore>true</testFailureIgnore>-->
                    <forkMode>never</forkMode>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                    <suiteXmlFiles>
                        <!--testng.xml文件位置-->
                        <suiteXmlFile>src/res/testNG.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>

插件:maven-compiler-plugin

使用maven-compiler-plugin插件可以指定项目源码的jdk版本,编译后的jdk版本,以及编码

插件:maven-surefire-plugin

是maven里执行测试用例的插件。如终端里直接运行 mvn test ,它会执行全部的测试用例。

三、编写待测类和测试类

这里有一个待测类Calculate,里面有加减乘除的方法,通过测试类来测试方法的正确性。

待测类:Calculate

public class Calculate {
    public int add(int a, int b) {
        return a + b;
    }

    public int subtract(int a, int b) {
        return a - b;
    }

    public int multiply(int a, int b) {
        return a * b;
    }

    public int divide(int a, int b) {
        return a / b;
    }
}

测试类:CalculateTest

import org.testng.Assert;
import org.testng.annotations.Test;

public class CalculateTest {

    @Test(enabled = true)//false 忽略测试此测试用例
    public void testAdd() {
        /**
         * assertEquals这个方法是一个断言方法
         * 第一个参数表示程序的执行结果
         * 第二个参数表示预期的结果
         * 当预期结果与执行结果是一致的时候,则表示单元测试成功
         */
        Assert.assertEquals( new Calculate().add(1, 3),4);
        System.out.println("testAdd()");
    }


    @Test
    public void testSubtract() {
        Assert.assertEquals(new Calculate().subtract(9, 5),4 );
        System.out.println("testSubtract()");
    }

    @Test
    public void testMultiply() {
        System.out.println("testMultiply()");
        Assert.assertEquals(new Calculate().multiply(2, 3),6 );

    }

    /**
     * 预期异常测试
     */
    @Test(expectedExceptions =ArithmeticException.class)
    public void testDivide() {
        Assert.assertEquals( new Calculate().divide(9, 0),3);
        System.out.println("testDivide()");
    }
}

四、编写testNG.xml

xml文件可用于按照需要批量执行用例

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite_TestAll" parallel="true" thread-count="2" >
    <test name="testCase1">
        <classes>
            <class name="com.xnn.calculate.CalculateTest"/>
    </test>

</suite>

 五、执行测试

(1)执行测试类中的单个测试方法

在IDEA中,打开测试类CalculateTest,点击方法左侧的运行图标。或者在方法内,右键选择测试方法运行。

(2)根据testNG.xml执行测试用例

a.选择Edit Configuration...

b.在Run/Debug Configurations窗口中,点击“+”按钮,选择“TestNG”

c.配置TestNG

d.配置完成后,点击运行 

e.用例执行结果

最后附上一张项目目录结构:

Github: https://github.com/X-NaN/TestNgProj/blob/master/src/test/java/com/xnn/calculate/CalculateTest.java

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值