[跟着官方文档学TestNG][一][学习笔记]
【摘要】 TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些新功能,使其更强大且更易于使用,例如:注解在具有各种可用策略的任意大的线程池中运行你的测试(所有方法在它们自己的线程中,每个测试类一个线程,等等…)测试你的代码是多线程安全的。灵活的测试配置。支持数据驱动测试(使用@DataProvider)。支持参数。强大的执行模型(不再有 TestSuite)。支持多种工具和插件(Ec...
TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些新功能,使其更强大且更易于使用,例如:
- 注解
- 在具有各种可用策略的任意大的线程池中运行你的测试(所有方法在它们自己的线程中,每个测试类一个线程,等等…)
- 测试你的代码是多线程安全的。
- 灵活的测试配置。
- 支持数据驱动测试(使用@DataProvider)。
- 支持参数。
- 强大的执行模型(不再有 TestSuite)。
- 支持多种工具和插件(Eclipse、IDEA、Maven 等)。
- 嵌入 BeanShell 以获得更大的灵活性。
- 用于运行时和日志记录的默认 JDK 函数(无依赖关系)。
- 应用服务器测试的依赖方法。
TestNG旨在简化广泛的测试需求,从单元测试(单独测试其他类)到集成测试(测试由多个类,多个包甚至几个外部框架组成的整个系统,如应用程序服务器)。
编写测试通常分为三个步骤:
- 编写测试的业务逻辑,并在代码中插入TestNG注解。
- 在testng.xml文件或build.xml中添加有关测试的信息(例如类名、要运行的组等)。
- 运行TestNG。
代码示例:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.5</version>
<scope>test</scope>
</dependency>
</dependencies>
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SimpleTest {
@BeforeClass
public void setUp() {
//...
}
@Test(groups = {"fast"})
public void aFastTest() {
System.out.println("Fast test");
}
@Test(groups = {"slow"})
public void aSlowTest() {
System.out.println("Slow test");
}
}
输出结果:
方法setUp()将在构建测试类之后和运行任何测试方法之前调用。在此示例中,我们将快速运行组,因此将调用 aFastTest()而跳过aSlowTest()。
注意事项:
- 无需扩展类或实现接口。
- 尽管上面的例子使用了JUnit约定,我们的方法可以被称为任何你喜欢的名字,它是告诉TestNG它们是什么的注解。
- 一个测试方法可以属于一个或多个组。
- TestNG要求JDK 8及以上。
本文档中使用的概念如下:
- 一个套件由一个XML文件表示。它可以包含一个或多个测试,并由<suite>标记定义。
- 测试由
<test>
表示,可以包含一个或多个TestNG类。 - TestNG类是包含至少一个TestNG注解的Java类。它由
<class>
标记表示,可以包含一种或多种测试方法。 - 测试方法是在源代码中由@Test注解的Java方法。
TestNG测试可以通过@BeforeXXX和@AfterXXX注解来配置,它们允许在某个点之前和之后执行一些Java逻辑,这些点是上面列出的项目之一。
教程其余部分将解释以下内容:
- 带有简要说明的所有注释的列表。这将了解TestNG提供的各种功能,但可能需要查阅专门针对每个注解的部分以了解详细信息。
- testng.xml文件的描述、其语法以及可以在其中指定的内容。
- 各种功能的详细列表以及如何结合注释和testng.xml使用它们。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)