Saltar al contenido

Diferencia entre BeforeClass y BeforeTest en TestNG

Este enunciado fue analizado por nuestros especialistas para garantizar la veracidad de nuestro contenido.

Solución:

SeleniumAbstractTest.clase

public abstract class SeleniumAbstractTest 

  @BeforeSuite
  public void beforeSuite() 
    System.out.println("BeforeSuite");
  

  @BeforeTest
  public void beforeTest() 
    System.out.println("BeforeTest");
  

  @BeforeClass
  public void beforeClass() 
    System.out.println("BeforeClass");
  

  @BeforeMethod
  public void beforeMethod() 
    System.out.println("BeforeMethod");
  

  @AfterMethod
  public void afterMethod() 
    System.out.println("AfterMethod");
  

  @AfterClass
  public void afterClass() 
    System.out.println("AfterClass");
  

  @AfterTest
  public void afterTest() 
    System.out.println("AfterTest");
  

  @AfterSuite
  public void afterSuite() 
    System.out.println("AfterSuite");
  


MiClaseDePrueba1.clase

public class MyTestClass1 extends SeleniumAbstractTest 

  @Test
  public void myTestMethod1() 
    System.out.println("myTestMethod1");
  

  @Test
  public void myTestMethod2() 
    System.out.println("myTestMethod2");
  

MiClaseDePrueba2.clase

public class MyTestClass2 extends SeleniumAbstractTest 

  @Test
  public void myTestMethod3() 
    System.out.println("myTestMethod3");
  

  @Test
  public void myTestMethod4() 
    System.out.println("myTestMethod4");
  

Si tiene el siguiente conjunto de pruebas…


  
    
       
    
  

  
    
      
      
    
  

… entonces la salida [indented for easy reading] estarán

BeforeSuite
'   BeforeTest
'   '   BeforeClass
'   '   '   BeforeMethod
'   '   '   '   myTestMethod3
'   '   '   AfterMethod
'   '   '   BeforeMethod
'   '   '   '   myTestMethod4
'   '   '   AfterMethod
'   '   AfterClass
'   AfterTest
'   BeforeTest
'   '   BeforeClass
'   '   '   BeforeMethod
'   '   '   '   myTestMethod1
'   '   '   AfterMethod
'   '   '   BeforeMethod
'   '   '   '   myTestMethod2
'   '   '   AfterMethod
'   '   AfterClass
'   '   BeforeClass
'   '   '   BeforeMethod
'   '   '   '   myTestMethod3
'   '   '   AfterMethod
'   '   '   BeforeMethod
'   '   '   '   myTestMethod4
'   '   '   AfterMethod
'   '   AfterClass
'   AfterTest
AfterSuite

Espero eso ayude 🙂

@BeforeMethod: se ejecuta antes de cada método de prueba, por ejemplo, el método que usa la anotación @Test

@BeforeTest: se ejecuta solo antes de la etiqueta dada en el archivo testng.xml.

En pocas palabras, @BeforeMethod funciona en la prueba definida en las clases de Java. Y @BeforeTest funciona en la prueba definida en testng.xml, es decir, archivos XML.

Antes de explicar la diferencia, primero se trata de algunas terminologías de prueba.

Test suite – Consta de una o más etiquetas de prueba.

Test tag – Consta de una o más clases de prueba.

Test class – Consta de uno o más métodos.

por ejemplo


  
    
      
    
  
  
    
      
      
    
  

@BeforeTest : Se llamará solo una vez antes de cualquier etiqueta de prueba, sin importar cuántas clases de prueba haya dentro de esa etiqueta o cuántos métodos se anoten con @Testse llamará solo una vez para cada etiqueta de prueba, en el ejemplo XML anterior @BeforeTest será llamado dos veces, una vez antesTestTag1 la segunda vez antes TestTag2 por lo que se puede usar para inicializar objetos comunes entre diferentes clases de prueba dentro de una etiqueta de prueba.

@BeforeClass : Se llamará una sola vez antes de cualquier prueba claseno importa cuántos métodos anotados con @Test dentro de esta clase de prueba, se llamará solo una vez para cada clase de prueba, en el anterior XML ejemplo @BeforeClass será llamado tres veces, una vez antesTestClass1 la segunda vez antes TestClass2 y la tercera vez antes TestClass3 por lo que puede usarse para inicializar objetos comunes entre diferentes métodos de prueba dentro de una clase de prueba.

@BeforeSuite será llamado una vez para el suit1 traje

el orden de las llamadas será el siguiente

@BeforeSuite
    @BeforeTest
        @BeforeClass
            @BeforeMethod
                @Test

Para saber más sobre @BeforeMethodconsulte la respuesta https://stackoverflow.com/a/52331616/1973933

Calificaciones y reseñas

Más adelante puedes encontrar las aclaraciones de otros administradores, tú además eres capaz insertar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *