NUnit читать файл из исходного бина - PullRequest
2 голосов
/ 16 апреля 2011

У меня есть библиотека классов в Visual Studio с методом, который просто проверяет, существует ли указанный файл или нет.Если я передаю только имя файла (без полного пути) какого-либо текстового файла, который существует в каталоге bin, он отлично работает, определяя его существование.

Следовательно, File.Exists ("myfile.txt") работает, если myfile.txt находится в каталоге bin.

Но когда я загружаю контрольный пример из NUnit GUI, который выполняет этот метод, он не может прочитать файл.Вероятно, потому что каталог bin, выполняющий NUnit, отличается от оригинального bin, где находятся dll и myfile.txt.Как я могу решить эту проблему в моем NUnit, не прибегая к жестко заданному полному пути?

1 Ответ

2 голосов
/ 17 апреля 2011

В ваших тестах передайте относительный путь к методу тестируемого класса.Это позволяет избежать использования жестко запрограммированного полного пути и до тех пор, пока ваш тестовый проект всегда находится в одном и том же месте относительно вашего исходного проекта, он будет работать.

например, если ваш источник настроен следующим образом:

\Solution\src\Project\bin\debug\myFile.txt
\Solution\test\TestProject\bin\debug\TestAssembly.dll

Относительный путь будет @"..\..\..\..\Project\bin\debug\myfile.txt"

Обновление

Я не совсем уверен, почему ваши тесты запускаются из временной папки,Я либо использую тестовый прогон, такой как Resharper , либо настраиваю свой тестовый проект следующим образом:

  1. Откройте свойства проекта для проекта, содержащего ваши тесты.
  2. Перейдите на вкладку «Отладка» и установите следующие значения:
    • Запустите внешнюю программу: Введите местоположение файла nunit.exe, например, на моем компьютере он установлен в C: \ Program Files \ NUnit 2.5.5 \bin \ net-2.0 \ nunit.exe .
    • Аргументы командной строки: Введите имя вашей сборки, содержащей ваши тесты, а затем аргумент run, например TestProject.dll / run .
  3. Установите проект, содержащий ваши тесты, в качестве проекта запуска.
  4. Нажмите F5.

Таким образом, ваши тесты всегда будут запускаться изbin\debug (в зависимости от того, как настроена ваша сборка), поэтому вы можете полагаться на проекты, всегда находящиеся в одном и том же относительном местоположении.

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