为Java中

时间:2017-06-16 15:32:04

标签: java automated-tests testng appium testng-eclipse

我有一个属于多个组的测试方法,我想确保一个@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的新手,请告诉我,如果我遗漏任何基本的东西

1 个答案:

答案 0 :(得分:2)

@BeforeMethod方法将以继承顺序运行 - 首先是最高的超类,然后是继承链。 @AfterMethod方法以相反的顺序运行(继承链上)。

但是,请注意,不保证在一个类中对多个带注释的方法进行排序(因此最好避免这种情况)。

此外,还提供在线文档,结帐http://testng.org/doc/documentation-main.html#annotations