visual studio microsoft espaƱol descargar community .net asp.net tdd .net-assembly

.net - studio - App.config en proyectos de prueba



visual studio installer (3)

Estoy construyendo una aplicación ASP.NET en VS2010. Tengo una serie de ensamblajes separados (bibliotecas de clase) y proyectos de prueba correspondientes para cada uno.

En una de las bibliotecas de clase utilizo un archivo App.config para almacenar configuraciones. El propio ensamblaje utiliza el siguiente código para recuperar la configuración:

string tmp = ConfigurationManager.AppSettings["mySetting"];

El problema es que cuando intento crear una prueba de unidad en un proyecto de prueba separado, la prueba no recoge la configuración en el archivo App.config. Si COPYo el archivo App.config en el proyecto de Prueba, funciona.

¿Cómo puedo asegurarme de que cada ensamblaje use su propia copia de un archivo App.config? Se introducirían problemas si tuviera que copiar los archivos de configuración alrededor. Existe un problema adicional porque puede haber varios archivos de configuración, uno por ensamblaje. ¿Cómo podrían todos coexistir en un solo proyecto de prueba?

¡Gracias!


Bueno, si necesita un archivo App.config compartido en varios proyectos, simplemente " Agregaría como enlace" el archivo App.config original en cada proyecto.

Digamos que tienes ProjectA con el App.config original. Entonces tienes ProjectATest1 y ProjectATest2 . En cada uno de los proyectos TestX :

  1. Haga clic derecho en el nombre de la solución en Visual Studio
  2. seleccione "Agregar elemento existente"
  3. navegue a ProjectA App.config y selecciónelo
  4. Haga clic en la flecha hacia abajo del botón "Agregar"
  5. seleccione "Añadir como enlace"

Creará un acceso directo de App.config en cada proyecto de TestX . Si lo cambias, cambiará en todas partes.

Espero que esto ayude.


En primer lugar, si está haciendo una prueba de unidad, entonces probablemente quiera observar la configuración en tono de burla, en lugar de leerla de todos modos.

Si realmente desea que la configuración esté disponible (lo he hecho para las pruebas de integración en el pasado), entonces puede agregar un paso posterior a la compilación a sus ensamblajes (supongo que se debe realizar un mapeo de ensamble 1-1 para probar) asambleas).

El paso posterior a la compilación (en el ensamblaje de prueba) se vería algo así:

copy /y "<path to your assembly under test>.dll.config" "$(TargetDir)/$(TargetName).dll.config"

Básicamente, está copiando la aplicación .config que Visual Studio ha cambiado de nombre para el ensamblaje que está probando, para que coincida con el nombre de configuración esperado para su ensamblaje de prueba.


Uno no debería tener archivos de configuración para los ensamblajes. Si lo hace, cada aplicación terminará teniendo un archivo de configuración por proyecto de dll / reference.

Los ensamblajes recogen los valores de configuración del contexto de la aplicación (Windows / Web) en el que se cargan.

Entonces, si tiene una aplicación web, los ensamblajes usarían el archivo web.config de la aplicación web para leer los valores de configuración. Del mismo modo, si tiene una aplicación de Windows / Prueba de unidad, las bibliotecas deben leer los valores de app.config.

Lea esta pregunta relacionada: C # .NET Compilación del archivo settings.settings de varios proyectos en una solución en 1 archivo de configuración