tutorial - pruebas unitarias java ejemplos
¿Cómo establecer el nivel de registro en DEBUG durante las pruebas de Junit? (2)
Estoy usando SLF4J con LOG4J, y las configuraciones generalmente están en log4j.properties
, y establece el nivel de registro en INFO.
Sin embargo, durante las pruebas me gustaría establecer los registros en DEBUG.
No puedo ver una manera de automatizar esto, ni tener algo como log4j.tests.properties
que se cargaría solo durante las pruebas.
Así que he intentado hacer esto mediante programación en la configuración de prueba (la @BeforeClass):
LogManager.getRootLogger().setLevel(Level.ALL);
Sin éxito ...
Estoy usando estas versiones:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
¿Cómo puedo lograr este resultado?
EDIT: Creo que no estaba lo suficientemente claro. Esta pregunta no se trata de establecer el nivel de registro correcto ... Se trata de configurar el nivel de registro DEBUG cuando se ejecutan pruebas de Junit y de configurar el nivel de registro INFO en cualquier otra situación. Quiero automatizar esto.
No es necesario que la JVM tenga una implementación de registro diferente.
El código de registro busca el archivo log4j.properties
utilizando la ruta de log4j.properties
. Entonces, todo lo que debe hacer es asegurarse de que su archivo de prueba log4j.properties
esté en una ubicación que encontrará antes del archivo de lanzamiento.
Uso Maven, que distribuye archivos en directorios para que sea más fácil. Mi versión log4j.properties
va en el directorio src/main/resources
. Mi versión de prueba va en src/test/resources
. La ruta de compilación de Eclipse (classpath) está configurada para buscar src/test/resources
antes de src/main/resources
, por lo que sus pruebas unitarias usan el archivo de prueba. Las instrucciones de compilación JAR (o WAR) usan los archivos de src/main/resources
.
Por lo general, LEVEL.FINEST debería hacerlo ... pero eche un vistazo a http://saltnlight5.blogspot.mx/2013/08/how-to-configure-slf4j-with-different.html para ver la consideración de implementaciones de marcos de registro.