Tengo un proyecto de prueba de unidad configurado en la misma solución que mi proyecto en Visual Studio. Las pruebas unitarias se realizan a través de las herramientas integradas de Pruebas de unidades en Visual Studio (incluidas en las versiones Premium y anteriores). Necesito cargar un archivo que está en la ruta del proyecto en sí, no en el proyecto de prueba, mientras se ejecutan las pruebas unitarias en el proyecto de prueba.¿Cómo obtener la ruta del proyecto desde el proyecto de prueba?
El archivo para incluir es parte del proyecto principal, y tiene las siguientes propiedades: Acción
- Complexión: Contenido
- Guardar en agenda de salida: Siempre
necesito escribir una unidad de prueba que para una función que depende de este archivo, o voy a golpear un estado de error y no podrá escribir pruebas para una cobertura del 100% de esa función.
¿Cómo obtendré la ruta de ejecución del proyecto real desde el proyecto de prueba de la unidad?
Editar: La función específica lee todas las líneas en el archivo de configuración y las almacena de a una en una lista. El código de ejemplo siguiente:
public List<string> LoadConfigFile() {
List<string> models = new List<string>();
StreamReader sr = new StreamReader(Path.GetDirectoryName(Application.ExecutablePath) + @"\" + Properties.Resources.SupportedModelsConfigFile);
while ((line = sr.ReadLine()) != null)
{
models.Add(line);
}
sr.Close();
return models;
}
Problema primario: Application.ExecutablePath funciona bien cuando se ejecuta el programa dentro o fuera del IDE, pero cuando se ejecutan las pruebas unitarias, me envía a un directorio dentro de Visual Studio, específicamente este directorio:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe
¿Qué haces con el archivo? –
también si tiene un código ya escrito, quizás pegar el código sería una buena idea y comente en ese código dónde está experimentando problemas si hay alguno y dónde en ese código desea ejecutar o agregue alguna funcionalidad adicional ... – MethodMan