TestNG @BeforeClass 注解

目录

那么,这个带@BeforeClass注释的方法什么时候执行呢? 

如果我们在一个类中放置多个@BeforeClass注释方法会发生什么?


在这篇文章中,我们将讨论TestNG中的@BeforeClass注释。@BeforeClass注释方法将在特定类的测试用例之前运行。

那么,这个带@BeforeClass注释的方法什么时候执行呢? 

下面的XML将有助于理解执行点。


      
        
             
             
        
    

我们可以在一个测试中有多个@BeforeClass注释的方法,就像我们可以在一个测试中有不同的类一样,如上面在XML文件中所示,每个类都可以有自己的@BeforeClass注释方法。

让我们看看一些行动的东西。我的意思是代码

我们将采用两个类,CodekruTestFirst和CodekruTestSecond,每个类都有自己的@BeforeClass注释方法。

CodekruTestFirst.java

package Test;
 
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
 
public class CodekruTestFirst {
 
    @BeforeClass
    public void beforeClass() {
        System.out.println("beforeClass method in CodekruTestFirst class");
    }
 
    @Test
    public void test() {
        System.out.println("Executing the test in CodekruTestFirst class");
        Assert.assertTrue(true);
    }
 
}

CodekruTestSecond.java

package Test;
 
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
 
public class CodekruTestSecond {
 
    @BeforeClass
    public void beforeClass() {
        System.out.println("beforeClass method in CodekruTestSecond class");
    }
 
    @Test
    public void test() {
        System.out.println("Executing the test in CodekruTestSecond class");
        Assert.assertTrue(true);
    }
 
}

现在,我们将运行下面的XML文件,看看会发生什么。


 

    
        
             
             
        
    

产出-

beforeClass method in CodekruTestFirst class
Executing the test in CodekruTestFirst class
beforeClass method in CodekruTestSecond class
Executing the test in CodekruTestSecond class

===============================================
codekru
Total tests run: 2, Failures: 0, Skips: 0
===============================================

这里发生了什么默认情况下,TestNG将按照XML文件中的顺序运行我们的测试。因此,它首先获取CodekruTestFirst类,然后运行它的@BeforeClass注释方法,然后运行它的测试用例。在那之后,它得到了CodekruTestSecond类,所以TestNG首先运行了它的@BeforeClass注释方法,然后运行了它的测试用例。

如果我们在一个类中放置多个@BeforeClass注释方法会发生什么?

如果我们在一个类中放置多个@BeforeClass带注释的方法,那么所有带注释的方法都会被执行。您可以尝试在CodekruTestFirst类中再添加一个带注释的方法,然后重新运行XML。

你可能感兴趣的:(unit,testing)