У меня есть функция, которая открывает файл справки для приложения. Функция принимает 3 аргумента:

ShowHelp (appPath, 1, @ "heelp \ help.doc")

  • Первый аргумент - это начальный путь.
  • Второй аргумент - количество уровней на начальном пути.
  • Третий аргумент - это путь к файлу справки после перехода на n уровней от начального пути.

Чтобы проверить это, я создал папку «Ресурсы» в своем тестовом проекте, добавил в эту папку документ и предоставил следующее:

controller.ShowHelp (Application.ExecutablePath, 1, @ "Ресурсы \ h.doc");

Однако, когда я запускаю этот тест с drive.net, мой исполняемый путь возвращается как:

"C: \ Program Files \ TestDriven.NET 2.0 \ ProcessInvocation.exe"

  • Как указать путь моего тестового проекта в тесте?
  • Есть ли более простой способ протестировать этот метод?

Благодарность!

3
eastender 19 Ноя 2009 в 14:22

2 ответа

Лучший ответ

Если вы используете

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)

Вы должны получить путь к библиотеке, содержащей тесты, возможно, что-то вроде (.. \ bin \ Debug), а затем вы можете адаптировать другие параметры.

3
João Angelo 19 Ноя 2009 в 14:31
Это правильный ответ. Иногда нужно использовать полный путь. Assembly.GetExecutingAssembly (). Location возвращает правильный путь для тестов NUnit. Application.StartupPath возвращает путь NUnit вместо bin / debug или bin / release
 – 
Napoleon
6 Сен 2021 в 15:47

Вы должны сделать свой путь относительным.

http://blogs.lessthandot.com/index.php/DesktopDev/MSTech/application-startuppath-and-nunit?highlight=application.startuppath&sentence=

Другими словами, замените путь к файлу application.executable на "/". Смотрите блог для более подробной информации.

1
chrissie1 19 Ноя 2009 в 14:32