TestNG - Registro personalizado

Anteriormente habíamos leído sobre las diferentes opciones que proporciona TestNG para el registro y la generación de informes. Ahora, aprendamos cómo empezar a usarlos. Para empezar, escribiremos un programa de muestra en el que usaremos la interfaz ITestListener para fines de registro.

Crear clase de caso de prueba

Cree una clase de Java, digamos, SampleTest.java en C:\> TestNG_WORKSPACE.

import org.testng.Assert;
import org.testng.annotations.Test;

public class SampleTest {
   @Test
   public void testMethodOne() {
      Assert.assertTrue(true);
   }
	  
   @Test
   public void testMethodTwo() {
      Assert.assertTrue(false);
   }
	  
   @Test(dependsOnMethods={"testMethodTwo"})
   public void testMethodThree() {
      Assert.assertTrue(true);
   }
}

La clase de prueba anterior contiene tres métodos de prueba de los cuales testMethodOne y testMethodThree pasarán cuando se ejecuten, mientras que testMethodTwo falla al pasar un valor booleano falso al método Assert.assertTrue, que se usa para las condiciones de verdad en las pruebas.

Crear clase de registro personalizada

Crea otra clase nueva llamada CustomListener.java en C:\> TestNG_WORKSPACE.

import org.testng.ITestResult;
import org.testng.TestListenerAdapter;

public class CustomListener extends TestListenerAdapter{
   private int m_count = 0;
	 
   @Override
   public void onTestFailure(ITestResult tr) {
      log(tr.getName()+ "--Test method failed\n");
   }
	 
   @Override
   public void onTestSkipped(ITestResult tr) {
      log(tr.getName()+ "--Test method skipped\n");
   }
	 
   @Override
   public void onTestSuccess(ITestResult tr) {
      log(tr.getName()+ "--Test method success\n");
   }
	 
   private void log(String string) {
      System.out.print(string);
      if (++m_count % 40 == 0) {
         System.out.println("");
      }
   }

}

La clase anterior extiende TestListenerAdapter , que implementa ITestListener con métodos vacíos. Por lo tanto, no es necesario anular otros métodos de la interfaz. Puede implementar la interfaz directamente, si lo prefiere.

Crea testng.xml

Cree testng.xml en C:\> TestNG_WORKSPACE para ejecutar caso (s) de prueba.

<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Logger Suite">
   <listeners>
      <listener class-name = "CustomListener" />
   </listeners>

   <test name = "Simple Logger test">
      <classes>
         <class name = "SampleTest" />
      </classes>
   </test>
</suite>

Compile las clases SampleTest, CustomListener usando javac.

C:\TestNG_WORKSPACE>javac CustomListener.java SampleTest.java

Ahora, ejecute testng.xml.

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

Verifique la salida.

testMethodOne--Test method success
testMethodTwo--Test method failed
testMethodThree--Test method skipped

===============================================
Simple Logger Suite
Total tests run: 3, Failures: 1, Skips: 1
===============================================

Creamos una clase de registrador personalizada, que implementa la interfaz ITestListener y se adjunta a la suite de pruebas TestNG como oyente. TestNG invoca los métodos de esta clase de escucha cuando se inicia la prueba, cuando falla la prueba, cuando la prueba es exitosa, etc. Se pueden implementar y agregar varios oyentes a la ejecución de la suite de pruebas, TestNG invocará a todos los oyentes que estén conectados a la suite de pruebas.

Los escuchas de registro se utilizan principalmente cuando necesitamos ver el estado continuo de la ejecución de la prueba cuando se están ejecutando las pruebas.