2009-09-15 23 views
6

Necesito leer una configuración de la sección de aplicaciones (definida en app.config) en una prueba unitaria. Estamos usando mstest en este proyecto.app.config para ensamble de prueba unitaria: cómo hacer que el atributo 'file' de los appsets funcione?

que este es el app.config:

<configuration> 
<appSettings> 
    <add key="MyAppSetting" value="MyAppSettingValue"/> 
</appSettings> 
</configuration> 

Aquí está la prueba correspondiente, que pasa en esta configuración:

[TestClass] 
public class ConfigurationTests 
{ 
    [TestMethod] 
    public void can_read_appsettings() 
    { 
     string value = ConfigurationManager.AppSettings.Get("MyAppSetting"); 
     Assert.AreEqual("MyAppSettingValue", value); 
    } 
} 

ahora cuando trato de mover la sección appsettings a una costumbre. archivo de configuración, esta prueba falla.

Esto es lo que se ve mi archivo app.config como ahora:

<configuration> 
<appSettings file='Custom.config' /> 
</configuration> 

añadí el archivo Custom.config a mi proyecto (con la acción de construir 'copia siempre'):

<appSettings> 
    <add key="MyAppSetting" value="MyAppSettingValue"/> 
</appSettings> 

Al hacer lo mismo en una aplicación de consola, esto funciona. ¿Hay alguna manera de hacer que esto funcione en un ensamble de prueba unitaria también?

Respuesta

8

Encontré la respuesta. Con mstest, necesitaba marcar el archivo 'Custom.config' como un elemento de implementación en el archivo 'localtestrun.testrunconfig'.

+0

¡Yay! ¡Me encanta configurar cosas para llegar a mi configuración! –

Cuestiones relacionadas