TestNG - 基本注解 - AfterGroups
-
简述
@AfterGroups 注解的方法只会在指定组的所有测试方法执行后运行一次。以下是@AfterGroups 注解支持的属性列表:属性 描述 alwaysRun对于 before 方法(AfterClass、beforeTest、beforeTestClass 和 beforeTestMethod,但不是 beforeGroups):如果设置为 true,则无论它属于哪个组,都会运行此配置方法。对于 after 方法(afterSuite、afterClass、...):如果设置为 true,则即使之前调用的一个或多个方法失败或被跳过,此配置方法也将运行。dependsOnGroups此方法所依赖的组列表。dependsOnMethods此方法所依赖的方法列表。enabled是否启用此类/方法上的方法。groups这个类/方法所属的组列表。inheritGroups如果为 true,则此方法将属于在类级别的 @Test 批注中指定的组。onlyForGroups仅适用于@BeforeMethod 和@AfterMethod。如果指定,则仅当相应的测试方法属于列出的组之一时才会调用此设置/拆卸方法。 -
创建一个类
创建一个要测试的java类,比如说, MessageUtil.java 在 /work/testng/src./* * This class prints the given message on console. */ public class MessageUtil { private String message; //Constructor //@param message to be printed public MessageUtil(String message) { this.message = message; } // prints the message public String printMessage() { System.out.println(message); return message; } }
-
创建测试用例类
-
创建一个 java 测试类,比如说, TestAnnotationAfterGroups.java 在 /work/testng/src.
-
将测试方法 testMethod() 添加到您的测试类。
-
将注解@Test 添加到方法 testMethod() 并将此方法添加到组testOne。
-
给测试类添加一个afterGroups方法,注解@AfterGroups,添加这个注解@AfterGroups("testOne")在testOne组之后执行
-
实现测试条件并检查@AfterGroups 注解的行为。
以下是TestAnnotationAfterGroups.java 的内容:import org.testng.Assert; import org.testng.annotations.Test; import org.testng.annotations.AfterGroups; public class TestAnnotationAfterGroups { MessageUtil messageUtil = new MessageUtil("Test method"); @AfterGroups("testOne") public void afterGroups(){ System.out.println("afterGroups method executed after testOne group"); } @Test(groups={"testOne"}) public void testMethod(){ Assert.assertEquals("Test method", messageUtil.printMessage()); } }
-
-
创建 testng.xml
接下来,让我们在其中创建 testng.xml 文件 /work/testng/src, 执行测试用例。此文件以 XML 格式捕获您的整个测试。该文件使您可以轻松地在一个文件中描述所有测试套件及其参数,您可以将其签入代码存储库或通过电子邮件发送给同事。它还可以轻松提取测试的子集或拆分多个运行时配置(例如,testngdatabase.xml 将仅运行测试您的数据库的测试)。<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="Suite"> <test thread-count="5" name="Test"> <classes> <class name="TestAnnotationAfterGroups"/> </classes> </test> <!-- Test --> </suite> <!-- Suite -->
使用 javac 编译测试用例。/work/testng/src$ javac TestAnnotationAfterGroups.java MessageUtil.java
现在,运行 testng.xml,它将运行 <test> 标记中定义的测试用例。如您所见,@AfterGroups 在所有其他测试用例之后被调用。/work/testng/src$ java org.testng.TestNG testng.xml
验证输出。Test method afterGroups method executed after testOne group =============================================== Suite Total tests run: 1, Passes: 1, Failures: 0, Skips: 0 ===============================================