TestNG @BeforeTest注解用法图解

在自动化测试用例时, 你有一个要求, 希望你首先删除提交的数据。例如, 当你运行测试用例时, 你将在表格中填写详细信息, 并将数据保存在数据库中。当你再次运行测试用例时, 你将收到一个错误消息” 数据已存在” 。
@BeforeTest:@BeforeTest注释下的方法将在属于该文件夹的任何测试之前首先执行。
让我们通过一个例子来理解。
【TestNG @BeforeTest注解用法图解】第一种情况:将@BeforeTest注释的方法放在开头时。
步骤1:打开Eclipse。
步骤2:我们创建两个Java项目, 即it_department.java和hr_department.java。
it_department.java

package com.srcmini; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class it_department { @BeforeTest// annotated method placed in the beginning.public void before_test(){System.out.println("It will be executed first"); }@Testpublic void software_developers(){System.out.println("Software Developers"); }@Testpublic void software_testers(){System.out.println("Software Testers"); }@Testpublic void qa_analyst(){System.out.println("QA Analyst"); }}

在上面的代码中, 在@BeforeTest注释下放置了一个方法, 该方法将在it_department中可用的所有测试方法之前首先执行。
hr_department.java
package com.srcmini; import org.testng.annotations.Test; public class hr_department { @Test public void manager() {System.out.println("Manager"); } @Test public void hr() {System.out.println("HR"); } @Test public void counsellor() {System.out.println("Counsellor"); }}

步骤3:创建testng.xml文件。 testng.xml文件
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> < suite name="test_suite"> < test name="IT Department"> < classes> < class name="com.srcmini.it_department"/> < /classes> < /test> < !-- Test --> < test name="HR Department"> < classes> < class name="com.srcmini.hr_department"/> < /classes> < /test> < !-- Test --> < /suite> < !-- Suite -->

步骤4:运行testng.xml文件。右键单击testng.xml, 然后将光标向下移动到Run As, 然后单击1 TestNG Suite。
输出
TestNG @BeforeTest注解用法图解

文章图片
上面的输出显示@BeforeTest批注中的方法首先在it_department的所有测试案例之前执行。
第二种情况:将@BeforeTest带注释的方法放在最后。
源代码
package com.srcmini; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class it_department { @Testpublic void software_developers(){System.out.println("Software Developers"); }@Testpublic void software_testers(){System.out.println("Software Testers"); }@Testpublic void qa_analyst(){System.out.println("QA Analyst"); }@BeforeTestpublic void before_test()// annotated method placed at the end.{System.out.println("It will be executed first"); }}

在上面的代码中, 我们将@BeforeTest注释方法放在最后。
输出
TestNG @BeforeTest注解用法图解

文章图片
在上面的输出中, 我们得出结论, 首先执行@BeforeTest注释方法, 因此, 得出结论, 将@BeforeTest注释方法放置在任何地方, 它将首先执行。

    推荐阅读