在testng中使用@BeforeTest注释的问题

Issue in using @BeforeTest annotation in testng

我正在为我的移动网站编写自动化代码。

Class1:-

public class Sample{

    @BeforeTest
    public void createUser(){
    // code to create user
    }

    @Test
    public void verifyUser(){
    // code to verify user
    }


    @AfterTest
    public void deleteUser(){
    // code to delete user
    }

}

喜欢Class1。我有不同的 类,例如 Class2Class3Class4

testing.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Suite1" verbose="1">
    <test name="Regression1" parallel="false" preserve-order="true">
        <classes>
            <class name="Class1"/>
            <class name="Class2"/>          
            <class name="Class3"/>
            <class name="Class4"/>
        </classes>
    </test>
</suite>

命令 运行:-

mvn -Dtests=testing.xml test

当我运行上面的命令时,Class1Class2Class3Class4中的@BeforeTest首先被调用。这意味着在 运行 任何测试之前首先创建 4 个用户。然后只有 Class1 测试是 运行ning 然后 Class2 等等。来自所有 类 的 Atlas @AfterTest 是 运行ning(删除所有用户 atlast)。

我不想要这种场景。

我需要以下方法来 运行 我的每个测试:-

  1. 创建用户
  2. 验证用户
  3. 删除用户

我需要先完全执行 Class1 然后 Class2 等等。

我必须对 testng 的注释进行任何更改吗?

使用 BeforeMethod 而不是 BeforeTestBeforeTest 方法将 运行 在 testng.xml 中的 <test> 标记之前,而不是在 @Test 方法之前。 当然也可以使用 AfterMethod 而不是 AfterTest

查看我对另一个类似问题的回答: