2009-05-30 12 views
7

Cuando intento ejecutar Pruebas unitarias (mstest) me encuentro con este problema.
La línea de código:app.configs y MSTest Project: referencia nula para una cadena de conexión

_mainCnStr = System.Configuration.ConfigurationManager. 
       ConnectionStrings["main"].ConnectionString; 

regresa como una referencia nula

No hace esto en el proyecto principal de la interfaz de usuario cuando lo ejecuto. ¿Cuál es el método correcto para obtener esta configuración de cadena de conexión vista por el proyecto Unit Test? Probé incrustado como un recurso. Intenté copiar siempre. ¿Cuál es la combinación correcta de configuraciones que arreglará esto para mí?

Respuesta

8

Debe agregar app.config al proyecto de prueba de la unidad. No utilizará automáticamente la configuración en la aplicación UI app.config.

+0

¿No debería ser capaz de insertar mi configuración en el ensamblaje? Creí haber visto esto antes. – BuddyJoe

+0

huh. Lo copié y sigo recibiendo el error. raro – BuddyJoe

+0

Haga clic con el botón derecho en el proyecto de prueba, agregue un "Archivo de configuración de la aplicación" y copie los contenidos. Debería funcionar ... –

0

Supongo que los mstests son, como las pruebas de nunit, incrustados en un conjunto separado que se carga por la aplicación de prueba? En ese caso, es posible que deba crear algún código de configuración de prueba que se cargue en el archivo de configuración.

9

Una cosa para ver con MSTest (desde el IDE al menos); no ejecuta las pruebas en la carpeta de salida normal (bin), y no respeta las inclusiones de archivos del proyecto ("Copiar al directorio de salida"). A menudo necesita decirle explícitamente (MSTest) qué archivos colocar en el área de prueba. Deberá incluir el "app.config" en esta lista; ya sea a través de testrunconfig ("Implementación") o agregando un atributo ([DeploymentItem]) a los dispositivos de prueba afectados.

+2

Después de poner DeploymentItem ("db.config") encima de la clase de prueba, ¡funcionó! Gracias. – Jirapong

Cuestiones relacionadas