Как получить путь проекта из тестового проекта? - PullRequest
10 голосов
/ 05 января 2012

У меня есть проект модульного теста, созданный в том же решении, что и мой проект в 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

1 Ответ

13 голосов
/ 05 января 2012

вы можете установить переменную, чтобы получить путь к месту запуска приложения из

var execPath = AppDomain.CurrentDomain.BaseDirectory;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...