澄清我对testNG注释的疑虑

时间:2017-05-03 09:37:24

标签: java selenium selenium-webdriver testng

**Class 1:**                                   **Class 2:**

@BeforeTest                                    @Test
public void browserSetup(){                    public void testCase2(){
   ...                                            ...
}                                              }

@Test                                          @Test
public void testCase1(){                       public void testCase3(){
   ...                                               ...
}                                              }

@AfterMethod
public void tearDown(){
   ...
}

在这两个类中是我的selenium java代码结构。这里的类1执行browserSetup,testcase 1和tearDown。我怀疑的是如何执行" tearDown"方法,在第2类方法之后。

我想像下面这样运行这个程序, 1. browserSetup 2. testCase1 泪流满面 4. testCase2 泪流满面 6. testCase3 撕裂

对此有何解决方案?

2 个答案:

答案 0 :(得分:2)

如果您询问如何将特定的拆解方法与特定的@Test方法相关联,则无需注释:只需在最终的测试方法结束时调用它:

@Test
public void someTest() {
    try {
        // test something
    } finally {
        someParticularTearDown();
    }
}

答案 1 :(得分:0)

您可以使用继承:

母班:

@BeforeTest                                 
public void browserSetup(){                
   ...                                        
}   

@AfterMethod
public void tearDown(){
   ...
}

第1课:

@Test                                         
public void testCase1(){                 
   ...                                      
}                                         

第2课:

@Test
public void testCase2(){
   ...                                            
}                                              

@Test                                       
public void testCase3(){
   ...                                           
}