В ваших тестах передайте относительный путь к методу тестируемого класса.Это позволяет избежать использования жестко запрограммированного полного пути и до тех пор, пока ваш тестовый проект всегда находится в одном и том же месте относительно вашего исходного проекта, он будет работать.
например, если ваш источник настроен следующим образом:
\Solution\src\Project\bin\debug\myFile.txt
\Solution\test\TestProject\bin\debug\TestAssembly.dll
Относительный путь будет @"..\..\..\..\Project\bin\debug\myfile.txt"
Обновление
Я не совсем уверен, почему ваши тесты запускаются из временной папки,Я либо использую тестовый прогон, такой как Resharper , либо настраиваю свой тестовый проект следующим образом:
- Откройте свойства проекта для проекта, содержащего ваши тесты.
- Перейдите на вкладку «Отладка» и установите следующие значения:
- Запустите внешнюю программу: Введите местоположение файла nunit.exe, например, на моем компьютере он установлен в C: \ Program Files \ NUnit 2.5.5 \bin \ net-2.0 \ nunit.exe .
- Аргументы командной строки: Введите имя вашей сборки, содержащей ваши тесты, а затем аргумент run, например TestProject.dll / run .
- Установите проект, содержащий ваши тесты, в качестве проекта запуска.
- Нажмите F5.
Таким образом, ваши тесты всегда будут запускаться изbin\debug
(в зависимости от того, как настроена ваша сборка), поэтому вы можете полагаться на проекты, всегда находящиеся в одном и том же относительном местоположении.