2011-04-07 11 views
7

Estoy usando Microsoft Visual Studio Test Framework y algunas de mis pruebas requieren un archivo xml como entrada. Actualmente los he colocado en un directorio de recursos en mi TestProject y los estoy accediendo a través de un "\" Ruta de acceso \ "\ whatever". Me gustaría obtener consejos para una buena práctica al usar archivos de recursos de prueba ya que me gustaría reutilizar mi prueba en todas estas situaciones - Directamente desde VS 2010 - Durante mi proceso de compilación en el servidor - En un entorno de integración continua en una manera transparente (y simple).C# Test Resources

Respuesta

8

En primer lugar, generalmente trato de reducir la necesidad de confiar en el sistema de archivos durante las pruebas (al introducir algún tipo de abstracción para el sistema de archivos, de modo que se puede burlar el acceso al sistema de archivos).

Si eso no es posible, incluyo dichos archivos en el proyecto de prueba, en una subcarpeta llamada TestData o algo similar. Luego configuro el "Directorio de Copiar a Salida" a "Copiar siempre", para que el archivo se incluya en la salida y en una ubicación conocida en relación con el ensamblaje de prueba (independientemente de si la compilación se realiza dentro de Visual Studio o en un servidor de compilación). Esto funciona muy bien siempre que ningún código bajo prueba esté modificando archivos, sino que solo los necesita para leer datos.

+0

¿Dónde se configura Copiar al directorio de salida para copiar siempre? En cada archivo o puede configurarlo globalmente en un directorio? –

+0

@Terenzio: creo que debes configurarlo en los archivos individuales. Creo que puedes hacer eso en una toma seleccionando un rango de archivos en el Explorador de soluciones (no puedo verificar ahora: no tengo Visual Studio en este momento). –

+2

VS2010: también establece la propiedad del archivo de Acción de compilación en "Ninguno". – Dmitry

0

hago algo como esto en uno de mis pruebas de integración; y lo he resuelto de la misma manera que tú. Siempre que su archivo esté registrado en el control de fuente y use una ruta relativa (que parece que es), debería funcionar como se esperaba.

0

Estamos utilizando TFS2010 de CI. Todo el archivo de salida colocado en la carpeta Binarios. Para el recurso de configuración como XML usamos la opción Copiar al directorio de salida como Copiar siempre. Por lo tanto, se colocará en los directorios de salida siempre.

2

Sugeriría el enfoque de la siguiente answer. Es una pregunta similar. Este enfoque utiliza el atributo DeploymentItem, que también se usa al realizar pruebas de unidades controladas por datos.

Cuestiones relacionadas