У меня есть проект модульного теста, созданный в том же решении, что и мой проект в Visual Studio. Модульное тестирование выполняется с помощью встроенных инструментов модульного тестирования в Visual Studio (входит в Premium и более поздние версии). Мне нужно загрузить файл, который находится в пути самого проекта, а не тестового проекта, при выполнении модульных тестов в тестовом проекте.
Файл для включения является частью основного проекта и имеет следующие свойства:
- Build Action: Content
- Копировать в выходной каталог: всегда
Мне нужно написать модульный тест для функции, которая зависит от этого файла, или я попаду в состояние ошибки и не смогу написать тесты для 100% покрытия этой функции.
Как я могу получить путь выполнения реального проекта из проекта модульного теста?
Редактировать: Специальная функция читает все строки в файле конфигурации и сохраняет их по одной в списке. Пример кода следующий:
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;
}
Основная проблема: Application.ExecutablePath прекрасно работает при запуске программы внутри или вне среды IDE, но при запуске модульных тестов отправляет меня в каталог в Visual Studio, в частности в этот каталог:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe