在自动化测试用例时, 你有一个要求, 希望你首先删除提交的数据。例如, 当你运行测试用例时, 你将在表格中填写详细信息, 并将数据保存在数据库中。当你再次运行测试用例时, 你将收到一个错误消息”数据已存在”。
@BeforeTest:@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");
}
@Test
public void software_developers()
{
System.out.println("Software Developers");
}
@Test
public void software_testers()
{
System.out.println("Software Testers");
}
@Test
public 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。
输出
上面的输出显示@BeforeTest批注中的方法首先在it_department的所有测试案例之前执行。
第二种情况:将@BeforeTest带注释的方法放在最后。
源代码
package com.srcmini;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class it_department
{
@Test
public void software_developers()
{
System.out.println("Software Developers");
}
@Test
public void software_testers()
{
System.out.println("Software Testers");
}
@Test
public void qa_analyst()
{
System.out.println("QA Analyst");
}
@BeforeTest
public void before_test() // annotated method placed at the end.
{
System.out.println("It will be executed first");
}
}
在上面的代码中, 我们将@BeforeTest注释方法放在最后。
输出
在上面的输出中, 我们得出结论, 首先执行@BeforeTest注释方法, 因此, 得出结论, 将@BeforeTest注释方法放置在任何地方, 它将首先执行。
评论前必须登录!
注册