Selenium Query_Multiple @Test无法在单个类中执行

时间:2018-07-22 19:58:38

标签: selenium testng

我使用了以下代码:-

public class Class5 {
    @Test
    public void method24() {
        System.out.println("Class 5- Test Method 1");
    }
    @Test
    public void method89() {
        System.out.println("Class 5- Test Method 2");
    }
    @BeforeMethod
    public void method25() {
        System.out.println("Class 5- BeforeMethod 1");
    }

    @BeforeMethod
    public void method26() {
        System.out.println("Class 5- BeforeMethod 2");
    }

    @AfterMethod
    public void method28() {
        System.out.println("Class 5- AfterMethod 1");
    }

    @AfterMethod
    public void method27() {
        System.out.println("Class 5- AfterMethod 2");
    }

}

获得以下输出:-

[RemoteTestNG] detected TestNG version 6.13.1
Class 5- BeforeMethod 1
Class 5- BeforeMethod 2
Class 5- Test Method 2
Class 5- AfterMethod 2
Class 5- AfterMethod 1
PASSED: method89

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================

在这里,我期望两个@Test方法都应执行。 有人可以解释一下它在这里如何工作吗?

同样,当我将public void method89()设为public void method10()之类的内容时(按字母顺序放在顶部),在这种情况下,两个@Test都会被执行,这是正确的行为。

1 个答案:

答案 0 :(得分:0)

@Test应该用于测试方法。现在,@BeforeMethod将在每个@Test方法之前运行。

@AfterMethod相同,后者将在每个@Test之后运行。

您可以将代码修改为:

public class Class5 {

@BeforeMethod
public void method25() {
        System.out.println("Class 5- BeforeMethod 1");
    }

@Test
public void method24() {
        System.out.println("Class 5- Test Method 1");
    }

@Test
public void method89() {
        System.out.println("Class 5- Test Method 2");
    }

@AfterMethod
public void method28() {
        System.out.println("Class 5- AfterMethod 1");
    }
}  

控制台输出为:

Class 5- BeforeMethod 1
Class 5- Test Method 1
Class 5- AfterMethod 1
Class 5- BeforeMethod 1
Class 5- Test Method 2
Class 5- AfterMethod 1
PASSED: method24
PASSED: method89