2010-07-12 8 views
1

J'ai une application qui utilise Commons Logging pour la journalisation. Il est construit avec Maven et utilise TestNG pour les tests. J'essaie d'affiner le niveau de journalisation pendant les tests, mais sans avoir de chance - tout est réglé sur INFO, peu importe ce que je fais. J'ai essayé de créer un fichier logging.properties sur le classpath, et cela ne fait absolument rien. J'ai également créé un fichier log4testng.properties - celui-ci est en cours de lecture (je le sais parce que TestNG a montré une erreur après avoir délibérément introduit une erreur de syntaxe dans celui-ci) mais les paramètres n'ont aucun effet.Définition du niveau de journalisation de l'application dans TestNG

Des suggestions?


EDIT: Eh bien, je n'ai pas compris le problème sous-jacent (pourquoi java.util.logging est ignorant mes tentatives de le configurer) mais j'ai pu obtenir ce que je veux en faisant Log4j disponibles lors des essais , puis en configurant cela. Je termine cette question, parce que je m'en fiche vraiment.

Répondre

-1

Mike,

Vous pouvez régler le niveau de journal dans testng.xml:

<suite verbose="3"... (up to 10) 

TestNG ne pas utiliser Log4J ni java.util.logging.

+0

Je pense que vous avez mal compris. Je me fiche de la sortie du journal de TestNG; Je me soucie de la sortie de mon application. –

+0

Pourquoi TestNG n'utilise-t-il pas java.util.properties? Cela me semble plutôt idiot. L'utilisation d'un fichier logging.properties pour configurer la classe java.util.logger est une norme largement acceptée pour le langage Java, et TestNG l'ignore complètement. – ecbrodie

+0

TestNG a sa propre classe Reporter complètement géniale. Si vous avez besoin d'une journalisation de fichier supplémentaire, vous pouvez ajouter Log4j à votre projet avec un FileAppender, sinon le logger Reporter est parfait pour la sortie de rapports et de consoles. Par ailleurs, l'option "verbeuse" TestNG n'a de sens que si vous enregistrez les instructions Reporter.log avec l'argument de niveau de journalisation inclus (avec chacune), n'est-ce pas? – djangofan

1

J'ai trouvé une solution de contournement pour cela. Créez vos logging.properties personnalisés dans src/test/ressources, puis dans un appel de configuration, le charger en tant que tel:

@BeforeClass(alwaysRun = true) 
protected void setUp() throws SecurityException, IOException 
{ 
    FileInputStream fis = new FileInputStream(BaseRestTest.class.getResource("/logging.properties").getFile()); 
    LogManager.getLogManager().readConfiguration(fis); 
} 

Cela semble re-configurer l'enregistreur racine après TestNG a pillée.

Questions connexes