2011-01-12 12 views
20

Qual è il modo migliore per configurare log4j per l'utilizzo in un ambiente di test dell'unità? Preferisco che i miei test unitari non avessero dipendenze esterne, quindi leggere il file di configurazione log4j non è un'opzione. Idealmente ci sarebbero 1 o 2 chiamate di funzione che potrei fare dall'interno della funzione di configurazione del test dell'unità.Come configurare log4j in un ambiente di test dell'unità?

+0

Avete pensato di utilizzare SLF4J che può essere meglio per il vostro caso d'uso penso. – OpenSource

+0

La configurazione esterna di Log4J non è male, poiché uno sviluppatore può cambiarlo durante la ricerca dei bug. – xmedeko

risposta

15

si potrebbe mettere un blocco di codice statico nella parte superiore del test che fa

BasicConfigurator.configure(); 

Si noti che il problema di questo è che ogni volta che si esegue questa linea, log4j aggiungerà un appender e otterrete dichiarazioni di registro duplicate. Quindi se lo fai in ogni classe di test, finirai con n duplicati di ogni dichiarazione di registro.

Quindi ti consiglio di creare una classe che sia il tuo BaseTestCase e farlo lì.

nota, avere una sorta di test-risorse con la configurazione in questione non è una cattiva idea ...

+0

Grazie. Gli appendici duplicati sono stati il ​​mio problema con questo approccio. –

+12

Un modo più semplice per non "finire con n duplicati di ogni istruzione di registro" è precedere la riga di codice sopra con: BasicConfigurator.resetConfiguration(); – urig

+2

@urig: hai reso la mia giornata – boutta

Problemi correlati