Как получить доступ к файлам проекта из тестов NUnit - PullRequest
5 голосов
/ 27 мая 2010

У меня есть несколько тестов, которые я запускаю с помощью функции «Запустить все тесты из решения» ReSharpers. Один из тестируемых классов зависит от файла в той же папке, что и сборка, в которой он находится. Этот файл копируется в выходной каталог через MSBuild (установите «Копировать в выходной каталог» на «Копировать всегда»).

Проблема: Тесты выполняются не из выходного каталога обычной сборки, а из-за некоторого временного расположения в моем профиле пользователя.

Поэтому я не знаю, где искать файл - тестовый бегун не копирует его туда. Могу ли я заставить его?

Ответы [ 2 ]

8 голосов
/ 14 июня 2013

Веб-сайт NUnit рекомендует в этом конкретном случае использовать свойство Assembly.CodeBase, которое приводит к необходимости нужного мне bin / debug.

«Примечание. Если вы склонны отключить теневое копирование, чтобы получить доступ к файлам в том же каталоге, что и ваша сборка, вы должны знать, что есть альтернативы. Рассмотрите возможность использования свойства Assembly.Codebase, а не Assembly.Location.»

.Location вернул адрес в стиле Uri "file: //// D: // Projects ...", поэтому фактический код, который я использовал, был

string applicationDirectory = new Uri(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)).LocalPath;
4 голосов
/ 27 мая 2010

Звучит так, как будто вы проводите свои тесты с включенной опцией Shadow Copy.

Перейдите в Resharper-> Options и выберите вкладку Unit Testing (справа внизу списка). Снимите флажок «Тестируемые сборки теневого копирования» и повторите попытку.

...