进一步询问SO-4310964,我在test.org处完成了对注释的描述。
@BeforeTest:带注释的方法将在任何测试方法之前运行 属于
test
标记内的类的运行。
现在我们在代码中的内容如下:
MyTests.java
public class MyTests {
@BeforeTest
public void preTest(){
//Want to perform some action, suppose clear a Hashmap
System.out.println("Before Test Called!");
}
@Test(groups = {"SanityTests"}, testName = "test1")
public void Test1(){
System.out.println("test1");
}
@Test(groups = {"SanityTests"}, testName = "test2")
public void Test2(){
System.out.println("test2");
}
}
执行完整性的test.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="SanityTests" verbose="1" >
<listeners>
<listener class-name="com.android.MyTestsListener" />
</listeners>
<test name="sanityAndroid">
<classes>
<class name="com.android.MyTests" />
</classes>
</test>
</suite>
注意:我知道@BeforeMethod解决了这个问题。但据我了解@BeforeTest [preTest
]方法在@Test [test1
,test2
]方法之前运行的链接详细信息,该方法属于class
内的<test>
{{1}}标记。我哪里错了?
答案 0 :(得分:1)
BeforeTest :带注释的方法将在属于<test>
标记内的类的任何测试方法运行之前运行
专注于“之前任何测试方法”,而不是每种测试方法。
现在,如果测试标记有以下两个类:
<test name="sanityAndroid">
<classes>
<class name="com.android.MyTests1" />
<class name="com.android.MyTests2" />
</classes>
</test>
类MyTest1将@Test方法作为test1,test2和 MyTest2类将@Test方法作为test3,test4。
因此,BeforeTest方法将在任何测试方法之前运行,即test1,test2,test3,test4属于<test>
标签内的类MyTest1,MyTest2。
执行成为BeforeTest - &gt; (test1,test2,test3,test4)依赖于依赖。
类似于AfterTest:在属于<test>
标签内的类的所有测试方法运行后,带注释的方法将运行。