TestNG @AfterTest
TestNG @AfterTest 注解
@AfterTest: @AfterTest 注解下的测试方法在执行完所有测试方法后执行可用的类保存在套件中 testng.xml 文件中的标记。
通过一个例子来理解。
第一种情况: 当@AfterTest注解的方法在最后存在时.
第1步: 打开Eclipse。
第2步: 我们创建两个java项目。假设我们创建了一个包含定期存款和定期存款两个模块的存款项目。
Fixed_Deposit.java
package com.lidihuo;
import org.testng.annotations.Test;
public class Fixed_deposit
{
@Test
public void fixed_deposit()
{
System.out.println("Fixed Deposit");
}
@Test
public void roi()
{
System.out.println("Rate of Interest");
}
}
Recurring_Deposit.java
package com.lidihuo;
import org.testng.annotations.AfterTest;
import org.testng.annotations.Test;
public class Recurring_deposit
{
@Test
public void recurring_deposit()
{
System.out.println("Recurring Deposit");
}
@AfterTest
public void after_test()
{
System.out.println("After test execution..");}}
在上面的例子中,我们在Recurring_Deposit中使用了@AfterTest注解,这意味着测试注解的方法,即after_test(),只有在Recurring_Deposit类的所有测试方法都为
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="Recurring Deposit">
<classes>
<class name="com.lidihuo.Recurring_deposit"/>
</classes>
</test> <!--Test-->
<test name="Fixed Deposit">
<classes>
<class name="com.lidihuo.Fixed_deposit"/>
</classes>
</test> <!--Test-->
</suite> <!--Suite-->
输出
第二种情况: 当@AfterTest注解方法存在于类文件的开头时。
Recurring_deposit.java
package com.lidihuo;
mport org.testng.annotations.AfterTest;
import org.testng.annotations.Test;
public class Recurring_deposit
{
@AfterTest
public void after_test()
{
System.out.println("After test execution..");
}
@Test
public void recurring_deposit()
{
System.out.println("Recurring Deposit");
}
}
在上面的代码中,我们把@AfterTest注解的方法放在开头。
输出
我们得到了与第一种情况相同的输出,因此我们得出结论,@AfterTest 注释方法可以放在类文件中的任何位置。所述@AfterTest的所有测试方法执行之后运行注释的方法呈现在其中保持内部的的类文件夹。在上述情况下,@AfterTest注释方法在Recurring_deposit类中可用,因此 TestNG 将查看 testng.xml 文件并确定哪个测试文件夹包含 Recurring_deposit 类。在这种情况下,Recurring_deposit 类在 Recurring Deposit 中定义 文件夹,因此循环存款中可用的所有类 首先完成文件夹,然后执行@AfterTest 注释方法。
注意: 一旦执行完成,需要移除cookies、删除进程或关闭连接,因此使用@AfterTest注解方法。