@AfterTest:在@AfterTest带注释的方法下的测试方法是在所有可用类的测试方法执行后执行的, 这些类保留在套件的testng.xml文件中的标记内。
让我们通过一个例子来理解。
第一种情况:@AfterTest注释的方法末尾存在。
步骤1:打开Eclipse。
步骤2:我们创建两个Java项目。假设我们创建了一个存款项目, 其中包含两个模块:定期存款和定期存款。
Fixed_Deposit.java
package com.srcmini;
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.srcmini;
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批注, 这意味着仅当执行Recurring_Deposit类的所有测试方法时, 才会执行测试注释方法, 即after_test()。
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.srcmini.Recurring_deposit"/>
</classes>
</test> <!-- Test -->
<test name="Fixed Deposit">
<classes>
<class name="com.srcmini.Fixed_deposit"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
输出
第二种情况:当@AfterTest注释方法存在于类文件的开头。
Recurring_deposit.java
package com.srcmini;
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类, 因此, 首先完成Recurring Deposit文件夹中的所有可用类, 然后执行@AfterTest注释方法。
评论前必须登录!
注册