Dynami c Пути для источника данных MStest Unit Test - PullRequest
0 голосов
/ 06 февраля 2020

Я использую файлы CSV в качестве источника данных для своих модульных тестов MSTest. У меня была идея, что я буду генерировать динамические c пути к файлу для CSV-файла, сохранять их в переменной и затем передавать переменную в ConnectionString источника данных для модульных тестов.

Однако теперь я узнал, что мы не можем передать переменную в строке соединения с источником данных. Любая идея, как я могу сделать путь к файлу динамически c, так как DLL модульного теста будет выполняться на разных машинах, и путь stati c не вариант.

Файлы CSV уже добавлены в решение.

1 Ответ

0 голосов
/ 07 февраля 2020
 public string GetAbsolutePath(string relativePath)
    {
        string path = System.Reflection.Assembly.GetCallingAssembly().CodeBase;
        int lastIndex = path.LastIndexOf("bin", StringComparison.OrdinalIgnoreCase);
        string actualPath = path.Substring(0, lastIndex);
        string projectPath = new Uri(actualPath).LocalPath;
        string absolutePath = projectPath + relativePath;

        return absolutePath;
    }

Приведенный выше код для c# будет запускаться на любом компьютере для доступа к файлу внутри вашего проекта. этот код даст путь к папке вашего проекта в переменной «projectPath», даже если вы используете разные машины, потому что он генерируется со ссылкой на ваш файл DLL. единственное, что вам нужно сделать, это передать относительный путь к папке или файлу, который вы хотите найти внутри вашего проекта.

Примечание: - найдите папку bin в вашем проекте, переменная "projectPath" покажет вам путь до этого, а затем соответственно передайте ваш относительный путь в качестве параметра. Пожалуйста, отладьте функцию, чтобы получить ясное понимание.

Дайте мне знать, если вам нужно разъяснение

...