我有一个属于多个组的测试方法,我想确保一个@BeforeGroups方法(setupHomePage)在另一个(setupUniversalSearchPage)之前运行。必须在java中定义顺序,因为我应该使用任何testng xml。 虽然在另一个测试类的类似情况下,执行顺序也是如此。
public abstract class HomePageTest extends TestBase
{
@BeforeGroups("homePageTests")
public void setupHomePage()
{
loadHomePage();
}
}
public abstract class UniversalSearchPageTest extends HomePageTest
{
@BeforeGroups("universalPageTests")
public void setupUniversalSearchPage()
{
navigateToSearchPage();
}
}
public class UniversalSearchPageBasicTest extends UniversalPageTest
{
@Test(groups = {"homePageTests","universalPageTests")
public void searchVerificationTest()
{
//test code here
}
}
到目前为止,我试过以下内容: 1.在searchTerificationTest的@Test注释中反转组的顺序 2.在UniversalSearchPageBasicTest类的声明之上添加@Test(groups =“homePageTests”)。
我想知道命令@BeforeGroups方法是如何确定的,因为它在一个类中与其他类不同。 如果它有任何关系我在eclipse和Appium中使用maven 我是testng的新手,请告诉我,如果我遗漏任何基本的东西
答案 0 :(得分:2)
@BeforeMethod方法将以继承顺序运行 - 首先是最高的超类,然后是继承链。 @AfterMethod方法以相反的顺序运行(继承链上)。
但是,请注意,不保证在一个类中对多个带注释的方法进行排序(因此最好避免这种情况)。
此外,还提供在线文档,结帐http://testng.org/doc/documentation-main.html#annotations