2012-06-13 15 views
8

Soy nuevo con pruebas de unidad en Visual Studio y quiero cargar un archivo xml físico. Este archivo está en el proyecto de prueba de la unidad como un Contenido y se copia en el directorio de salida.Agregar archivo de contenido en el directorio de resultados de pruebas de la unidad

Por lo tanto, cuando compilo el proyecto, el archivo xml está en el directorio de salida. Pero cuando ejecuto la prueba, se crea un nuevo directorio con todas las DLL dependientes, pero el archivo xml no se copia.

El contenido del Xml es necesario para ejecutar la prueba. Ejecuto el código para recuperar la ruta del archivo XML en la carpeta de ejecución:

private static string GetXmlFullName() 
{ 
    // GetApplicationPath use the current DLL to find the physical path 
    // of the current application 
    string executeDirectory = AssemblyHelper.GetApplicationPath(); 
    return Path.Combine(executeDirectory, "content.xml"); 
} 

La excepción es:

System.IO.DirectoryNotFoundException: 'd:\***\solutiondirectory\testresults\*** 2012-06-13 17_59_53\out\content.xml'. 

¿Cómo puedo añadir este archivo en la carpeta ejecutar?

Gracias de antemano. (y perdón por mi inglés ...)

+0

parece un duplicado de este post: [datos de la muestra en prueba de la unidad] [1] [1]: http: //stackoverflow.com/questions/5383987/how-can-i-include-sample-data-files-in-vs-unit-tests – Clueless

+0

@Clueless: De hecho. No encontré esta publicación. Gracias. – Hyralex

+0

También relacionado - https://stackoverflow.com/questions/5581628/c-sharp-test-resources – sashoalm

Respuesta

6

Debe colocar un DeploymentItemAttribute en la clase de prueba.

Por ejemplo, para incluir todos los archivos en la carpeta de datos

[TestClass()] 
[DeploymentItem("Data")] 
public class MyTestClass 
{ 
    ... 
} 
+0

Muy simple. Funciona. Gracias. – Hyralex

+0

El atributo DeploymentItem solo funcionará si Build Action en el elemento está configurado en Content y el directorio Copy to Output está configurado en Copy newer o Copy siempre. http://stackoverflow.com/a/9107244/74585 –

+0

También tuve que habilitar Implementación en Elementos de solución -> Local.testsettings y agregar el directorio que deseaba implementar. ¡Uf! –

Cuestiones relacionadas