TestNG - registro personalizado

Tínhamos lido anteriormente sobre as diferentes opções que TestNG fornece para registro e relatórios. Agora, vamos aprender como começar a usá-los. Para começar, escreveremos um programa de amostra no qual usaremos a interface ITestListener para fins de registro.

Criar classe de caso de teste

Crie uma classe java, digamos, SampleTest.java dentro 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);
   }
}

A classe de teste anterior contém três métodos de teste nos quais testMethodOne e testMethodThree serão aprovados quando executados, enquanto testMethodTwo falha ao passar um valor booleano falso para o método Assert.assertTrue, que é usado para condições de verdade nos testes.

Criar classe de registro personalizada

Crie outra nova classe chamada CustomListener.java dentro 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("");
      }
   }

}

A classe acima estende TestListenerAdapter , que implementa ITestListener com métodos vazios. Portanto, não há necessidade de substituir outros métodos da interface. Você pode implementar a interface diretamente, se preferir.

Crie testng.xml

Crie testng.xml em C:\> TestNG_WORKSPACE para executar caso (s) de teste.

<?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 as classes SampleTest e CustomListener usando javac.

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

Agora, execute o testng.xml.

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

Verifique a saída.

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

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

Criamos uma classe de logger customizada, que implementa a interface ITestListener e se conecta ao conjunto de testes TestNG como um ouvinte. Os métodos dessa classe de ouvinte são chamados por TestNG quando o teste é iniciado, na falha do teste, no sucesso do teste e assim por diante. Vários ouvintes podem ser implementados e adicionados à execução do conjunto de testes, TestNG invocará todos os ouvintes que estão anexados ao conjunto de testes.

Os ouvintes de registro são usados ​​principalmente quando precisamos ver o status contínuo da execução do teste quando os testes estão sendo executados.