2011-01-12 19 views
20

¿Cuál es la mejor forma de configurar log4j para su uso en un entorno de pruebas unitarias? Prefiero que mis pruebas unitarias no tengan dependencias externas, por lo que leer el archivo de configuración log4j no es una opción. Idealmente, habría 1 o 2 llamadas a funciones que podría hacer desde la función de configuración de prueba de la unidad.¿Cómo configurar log4j en un entorno de prueba unitario?

+0

ha pensado en utilizar SLF4J que puede ser mejor para su caso de uso que pienso. – OpenSource

+0

La configuración externa de Log4J no está mal, ya que un desarrollador puede cambiarla al buscar errores. – xmedeko

Respuesta

15

se puede poner un bloque de código estático en la parte superior de la prueba que hace

BasicConfigurator.configure(); 

Tenga en cuenta que el problema con esto es que cada vez que se ejecuta esa línea, log4j añadirá un appender y obtendrá declaraciones de registro duplicadas. Entonces, si haces eso en cada clase de prueba, terminarás con n duplicados de cada declaración de registro.

Así que recomiendo crear una clase que sea su BaseTestCase y hacer eso allí.

Nota, tener algún tipo de prueba de los recursos con la configuración correspondiente no es una mala idea ...

+0

Gracias. Los appenders duplicados han sido mi problema con este enfoque. –

+12

Una manera más simple de no "terminar con n duplicados de cada declaración de registro" es preceder a la línea de código anterior con: BasicConfigurator.resetConfiguration(); – urig

+2

@urig: hiciste mi día – boutta

Cuestiones relacionadas