第一章 TestNG介绍和基本使用
第一章 TestNG介绍和基本使用
一、Cédric Beust 和 TestNG
Cédric Beust 在 Java 编程领域非常出名,是 EJB 3、JSR 175、JSR 201专家组的成员,也是其他一些流行的开源项目(例如 EJBGen 和 Doclipse)的创造者。
2004年,Beust 创建了一个名为TestNG的新开源测试框架的1.0版,受JUnit和NUnit的启发,但又开创了一些新的概念像 test groups, built-in parallel testing, exception support, time outs 之类的,使其功能更强大,使用更方便。它也是第一个利用当时Java最新推出的注解的测试框架。这些功能中的大多数后来被其他测试框架(例如JUnit,PHPUnit和NUnit)所采用。
二、TestNG 的特点
- 支持多线程运行测试;
- 支持参数化和数据驱动测试(使用@DataProvider);
- 存在各种强大工具和插件(Eclipse,IDEA,Maven等)支持;
- 可进行灵活的测试配置以覆盖单元,功能,端到端,集成等所有类别的测试;
- 可以使用XML进行灵活的测试配置。
- 支持方法依赖配置和基于异常的测试。
三、在MAVEN项目中引入TestNG
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
</dependency>
</dependencies>
注意:当前的TestNG需要JDK 8或更高版本。
四、基本使用
1.编写简单的测试代码
public class SimpleTest {
int originInt;
@BeforeMethod
public void init() {
originInt = 0;
}
@Test
public void addTest() {
Assert.assertEquals(originInt += 1, 1);
System.out.println("add test");
}
@Test
public void subtractTest() {
Assert.assertEquals(originInt -= 1, -1);
System.out.println("subtract test");
}
}
在pom.xml中引入插件,在项目的根目录中新增testng.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite 1">
<test name="testNG test1">
<classes>
<class name="org.example.demo.SimpleTest"/>
</classes>
</test>
</suite>
terminal中运行命令
mvn test