2008-10-01 12 views
5

Estoy ejecutando NUnit con el proyecto llamado AssemblyTest.nunit. La prueba llama a otro ensamblaje que usa el ensamblaje log4net. Esto está usando la versión nunit 2.4.3 con el marco .net 2.0.log4net Sección de configuración para NUnit Test Project

En TestFixtureSetup Estoy llamando log4net.Config.XmlConfigurator.Configure() y estoy recibiendo el siguiente error:

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

¿Hay una manera de solucionar este problema sin cambiar el nombre del archivo de configuración a 'AssemblyTest.config' ?

+0

No estoy familiarizado con .NET, pero no hay nada en el error que implique al menos que esto tenga algo que ver con el nombre del archivo de configuración. Me parece más que hay un problema con la línea 7 en su archivo de configuración. – TomC

+0

Sí, es por eso que hice la pregunta. La línea del archivo de configuración funciona con el archivo nombrado por el nombre del proyecto nunit y exactamente el mismo texto. Gracias por el punto. –

Respuesta

4

Cree un archivo de configuración separado para log4net con el elemento raíz log4net.

En TestFixtureSetup, cree un objeto FileInfo para este archivo config y ejecútelo como log4net.Config.XmlConfigurator.Configure().

10

he tenido el mismo problema, ya que me olvide de añadir el definición log4net en los configSections elemento.

lo tanto, si usted quiere poner log4net -elementos en el app.config, es necesario incluir la configSections elemento (que indica dónde log4net se definen -elementos) en la parte superior del archivo de configuración .

Trate de esta manera:

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

Tuve este problema también con el sistema de prueba de Visual Studio –

5

no sé por qué ustedes están atrapados en los archivos de configuración, por nunit si te gusta ver los registros que se ejecuta en la ventana de salida de texto en el corredor de prueba nunit todo lo que necesita que hacer es siguiente línea de código,

BasicConfigurator.Configure(); 

mejor punto de añadir esta línea es el constructor de la clase de prueba

por ejemplo,

[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

¡Corto y perfecto! – ShloEmi

+0

Esto convirtió todos mis enunciados de registro en salida en la prueba de unidad y no requirió rehacer nada de lo que la aplicación realmente utilizaba. +1 para ningún archivo de configuración! ¡Perfecto! – K0D4

Cuestiones relacionadas