Skip to main content

Usages of TestNG Annotations on the Automation Framework

Before explaining the difference, first this is some testing terminologies

Test suite – Consists of one or more test tags.

Test tag - Consists of one or more test classes.

Test class – Consists of one or more methods.

for examble:

<suite name="suit1">
  <test name="TestTag1">
    <classes>
      <class name="TestClass1"/>
    </classes>
  </test>
  <test name="TestTag2">
    <classes>
      <class name="TestClass2"/>
      <class name="TestClass3"/>
    </classes>
  </test>
</suite>

@BeforeTest : It will be called Only one time before any test tag, no matter how many test classes inside that tag or how many method annotated with @Test, it will be called only one time for each test tag,in the previous XML example @BeforeTest will be called twice, one time beforeTestTag1 the second time before TestTag2 so it can be used to initialize common objects between different test classes inside one test tag.

@BeforeClass : It will be called Only one time before any test class, no matter how many method annotated with @Test inside this test class, it will be called only one time for each test class,in the previous XML example @BeforeClass will be called three times, one time beforeTestClass1 the second time before TestClass2 and the third time before TestClass3 so it can be used to initialize common objects between different test methods inside one test class.

@BeforeSuite will be called once for the suit1 suit

the order of calls will be as follow

@BeforeSuite
    @BeforeTest
        @BeforeClass
            @BeforeMethod
                @Test



Ref:
https://stackoverflow.com/questions/30587454/difference-between-beforeclass-and-beforetest-in-testng

Comments

Popular posts from this blog

Install and configure WSL2 (ubuntu distro), npm, git and project on Windows

  For Installation information please visit:  https://docs.microsoft.com/en-us/windows/wsl/install-win10 1.Configure WSL 2  After installation search for %UserProfile% in the local machine. check if there is any .wslconfig file. If there is no .wslconfig file create one with this content depends on the available resource. [wsl2] memory=8GB swap=0 processors=4 Install windows Terminal Application and check if everything is configured properly. 2.Configuring NodeJS on WSL npm install 3.Configuring Git and project  To install git, in a wsl terminal, we run sudo apt update && sudo apt upgrade   sudo apt install git To set up your Git config file, open a command line for the distribution you're working in and set your name with this command (replacing "Your Name" with your Git username): git config --global user.name "Your Name" Set your email with this command (replacing "youremail@ domain.com " wi...

Setting Environment Variables JAVA_HOME, MAVEN_HOME, PATH and CLASSPATH in Java for Windows

http://www.a2ztechguide.com/2011/10/setting-environment-variables-javahome.html https://docs.oracle.com/javase/tutorial/essential/environment/paths.html http://stackoverflow.com/questions/2619584/how-to-set-java-home-on-windows-7 Recommended: https://www.youtube.com/watch?v=2FWhn6xteU0&list=PLTgRMOcmRb3OHE_z8n9uCpROTaynNcv1u&index=3 JDK Download link: http://www.oracle.com/technetwork/java/javase/downloads/index.html Set under System variables>> JAVA_HOME C:\Program Files\Java\jdk1.8.0_102 Set under System variables>> JAVA_CLASSPATH .;C:\Program Files\Java\jdk1.8.0_102 Set PATH under User Variables of UserName: C:\Program Files\Java\jdk1.8.0_102\bin echo %JAVA_HOME% Output should be- C:\Program Files\Java\jdk1.8.0_102 echo %JAVA_CLASSPATH% Output should be- C:\Program Files\Java\jdk1.8.0_102 echo %PATH% Output should be- C:\Program Files\Java\jdk1.8.0_102\bin Setting up Maven: https://stackoverflow.com/questions/45119595/ho...