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 @Test
se 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 @BeforeMethod
consulte 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.