@BeforeTest和@BeforeSuit注释之间有什么区别



@BeforeTest和@BeforeSuit注释之间有什么区别?我有两个带有@Test注释的方法和一个@BeforeTest方法。当我运行它时,@BeoforeTest方法只执行了一次。它不应该在每个@Test方法之前运行吗?

您可以参考这个例子,

https://stackoverflow.com/a/50814147/9405154

如果你想在每个测试方法之前调用annotation,你需要使用@BeforeMethod annotation。@BeforeTest和@BeforeSuite在执行时都只调用一次,它们只是在.XML套件执行上有不同的方法。

@BeforeTest将按类运行

你可能想要每个测试方法,然后使用@BeforeMethod:

带注释的方法将在每个测试方法之前运行。

@BeforeTest:在属于标记内类的任何测试方法运行之前,将运行带注释的方法

@BeforeTest

该注释将在每个测试方法(例如(之前运行

@BeforeTest
public void Setup()
{
System.out.println("before test");
}
@Test
public void test1()
{
System.out.println("Test1");
}
@Test
public void test2()
{
System.out.println("Test2");
}
Then output is as
before test
Test1
before test
Test2

其中,作为@BeforeSuite,该注释将运行@beforecass

@BeforeTest-

  1. 在带有此注释的方法中编写的任何代码都将为类内带有注释@Test的所有方法运行一次。

  2. 这最适合作为所有测试的先决条件的条件,例如测试1是查看用户配置文件,测试2是向购物车添加项目,测试3是管理地址,这些测试取决于用户应该登录的条件,因此我们可以用@BeforeTest注释的方法编写登录功能。

  3. 它存在于编写@Test方法的同一类中。

  4. 这主要应用于方法级别。

@BeforeSuite-

  1. 使用此注释的方法编写的任何代码都将在完整的套件生命周期中运行一次,即对于完整的testng.xml

  2. 这最适合初始化配置文件、创建数据库连接等。

  3. 该注释主要用于存在@Test方法的类的基类

@编辑-更改了@BeforeTest注释细节

最新更新