2008-10-01 7 views
5

Je cours NUnit avec le projet AssemblyTest.nunit. Le test appelle un autre assembly qui utilise l'assembly log4net. Ceci utilise nunit version 2.4.3 avec le framework .net 2.0.Section de configuration log4net pour le projet de test NUnit

En TestFixtureSetup J'appelle log4net.Config.XmlConfigurator.Configure() et je reçois l'erreur suivante:

 
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section log4net. (C:\path\to\assembly.dll.config line 7) 

est-il un moyen de résoudre ce problème sans renommer le fichier de configuration pour « AssemblyTest.config » ?

+0

Je ne suis pas familier avec .NET, mais il n'y a rien dans l'erreur qui implique au moins pour moi que cela n'a rien à voir avec le nom du fichier de configuration. Il me semble plus comme il y a un problème avec la ligne 7 dans votre fichier de configuration. – TomC

+0

Oui, c'est pourquoi j'ai posé la question. La ligne du fichier de configuration fonctionne avec le fichier nommé par le nom du projet nunit et exactement le même texte. Merci pour le point. –

Répondre

4

Créez un fichier de configuration séparé pour log4net avec l'élément racine log4net.

Dans TestFixtureSetup, créez un objet FileInfo pour ce fichier de configuration et donnez-le en argument à log4net.Config.XmlConfigurator.Configure().

10

J'ai eu le même problème parce que j'oublie d'ajouter le log4net définition dans les configSections élément.

Donc, si vous voulez mettre log4net -elements dans le app.config, vous devez inclure le configSections élément (qui indique où log4net -elements sont définis) en haut du fichier de configuration .

Essayez comme ceci:

<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <log4net> 
    ... 
    </log4net> 
</configuration> 
+0

J'ai eu ce problème aussi avec le système de test Visual Studio –

5

Je ne sais pas pourquoi les gars sont piégées dans des fichiers de configuration, pour nunit si vous voulez voir les journaux en cours d'exécution dans la fenêtre de sortie de texte dans runner test nunit tout ce que vous avez besoin à faire est suivant la ligne de code,

BasicConfigurator.Configure(); 

meilleur point d'ajouter cette ligne est le constructeur de la classe de test

par exemple

[TestFixture] 
    public class MyTest 
    { 
     log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyTest)); 

     public MyTest() 
     { 
      BasicConfigurator.Configure(); 
     } 

     [SetUp] 
     public void SetUp() 
     { 
      log.Debug(">SetUp");    
     } 

     [TearDown] 
     public void TearDown() 
     { 
      log.Debug(">TearDown"); 
     } 

     [Test] 
     public void TestNothing() 
     { 
      log.Debug(">TestNothing"); 
     } 
    } 
+0

Court et parfait! – ShloEmi

+0

Cela a transformé toutes mes instructions de journal en sortie dans le test unitaire et n'a pas nécessité de refaire tout ce que l'application réellement utilisé. +1 pour aucun fichier de configuration! Parfait! – K0D4

Questions connexes