java automation log4j testng

java - Resultado de la consola TestNG en log4j.log



automation (5)

Necesito obtener un resultado de salida (FAIL o SUCCESS) en la salida log4j.

Assert.assertTrue(availresponse);

¿Hay alguna forma de agregar la salida de la consola TestNG al archivo log4j.log?


Ajustar la afirmación con un registrador, por ejemplo

log.info(Assert.assertNotNull(availresponse));

Sin embargo, esto es un poco limitado en términos de información. Lo que suelo hacer es:

if(availresponse==null) { log.fatal("availresponse was null"); } Assert.assertNotNull(availresponse);

Sé que es un poco complicado, probar la condición dos veces, pero te permite ajustar el nivel de salida del registrador y agregar cualquier otra información que creas que sería útil, por ejemplo, las variables que se utilizaron para determinar el contenido de avalresponse.

De forma alternativa, podría intentar que la salida de la consola aparezca en su archivo de registro, en cuyo caso deberá agregar algo como:

log4j.appender.stdout.Target=System.out

a su archivo de propiedades log4j.


Si lo necesita, podría usar if .. else build para hacer el registro.

if(null != availresponse) { //log success message } else { //log failure message }

Otra forma es escribir una clase personalizada que implemente TestListenerAdapter . Puede ver el código de ejemplo completo aquí .


Finalmente encontré la forma más fácil de registrar el Assert error en log4j
En el catch block debe ser Throwable , si es Exception que no funcionará.

try { Assert.assertTrue(hotel.getAmenitiesList().size() < 0, "Hotel Amenities Available!"); } catch (Throwable e) { e.printStackTrace(); logger.error("FAILED: testRoomAmenities ", e); Assert.fail();

Cuando este implemento no invocará como FAIL . PASSED que el escenario está PASSED . Por lo tanto, debe usar Assert.fail() para hacer que se FAILED


Encontré una manera simple, fácil y perfecta de registrar la salida TestNG en el archivo log4j.log. Pero esto no se puede registrar Detalles del informe final en log4j (PASS o FAIL).

implements ITestListener

A continuación, agregue métodos no implementados

public void onTestSuccess(ITestResult result) { logger.info(result); } public void onTestFailure(ITestResult result) { logger.info(result); }

Puede agregar log4j logger en los métodos que necesita. ¡Disfrutar!


Puede encontrar la carpeta de test-output en su proyecto PATH. index.html mostrará el resultado de prueba de éxito o error.

  • Si testMethod() es testMethod() , no se mostrará ningún resultado de salida en el archivo index.html . Puede agregar mensaje Correcto utilizando Reporter.log()

  • Si testmethod() falla, automáticamente se imprimirá en archivo.

    NOTA : java.lang.AssertionError es un error que se arrojó para indicar que una aserción ha fallado.


Si alguien sabe cómo TestNG inserta ese error en el informe, comente a continuación.