Java 在testng中使用@BeforeTest注释时出现问题

Java 在testng中使用@BeforeTest注释时出现问题,java,annotations,testng,Java,Annotations,Testng,我正在为我的移动站点编写自动化代码 类别1:- public class Sample{ @BeforeTest public void createUser(){ // code to create user } @Test public void verifyUser(){ // code to verify user } @AfterTest public void deleteUser(){

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

类别1:-

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
。我有不同的课程,比如
Class2
Class3
Class4

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>
当我运行上述命令时,首先调用
Class1
Class2
Class3
Class4
中的
@BeforeTest
。这意味着在运行任何测试之前先创建4个用户。然后只有
Class1
测试正在运行,然后
Class2
依此类推。所有类的Atlast
@Afterest
正在运行(删除所有用户Atlast)

我不希望出现这种情况

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

  • 创建用户
  • 用户验证
  • 删除用户
  • 我需要首先完全执行我的
    Class1
    ,然后执行
    Class2
    ,依此类推


    testng的注释有什么变化吗?

    使用
    beforethod
    而不是
    BeforeTest
    BeforeTest
    方法将在
    testng.xml
    中的
    标记之前运行,而不是在
    @Test
    方法之前运行。 当然,也要使用
    AfterMethod
    而不是
    AfterTest


    请检查我的回答,了解另一个类似的问题:

    我在一门课上有两种测试方法。如果我使用before方法,则每次测试都会调用它。我不需要它。我希望调用BeforeMethod或BeforeTest而不考虑所有测试方法,并将AfterMethod或AfterTest称为所有测试方法的结束。如果测试类中有两个测试方法,则使用
    @BeforeClass
    @AfterClass
    。因此顺序是:beforeClass()、testMethod1()、testMethod2()、afterClass()。
    mvn -Dtests=testing.xml test