2010-03-20 10 views
1

У меня проблема с Nunit, где я не могу найти файл изображения, когда я запускаю свои тесты, и каждый раз, когда он ищет образы, он выглядит в папке Nunit вместо того, чтобы искать внутри папки, в которой находится двоичный файл , Ниже приведено подробное описание того, что происходит.Nutit Относительный путь не работает

  1. Я строй двоичного файла, который находится под тестом, который содержит определение для некоторых игровых элементов и PNG файлов, которые будут определять спрайты я использую (ради вменяемости называть его Binary1)
  2. Nunit запускает тесты из отдельного двоичного кода (Binary1Test), выполняющего методы тестирования против первого двоичного файла (Binary1).
  3. Все тесты проходят, если тест не выполняет код в Binary1, который затем требует, чтобы Binary1 использовал один из файлов изображений (которые определены через относительный путь). Когда вызывается метод, Nunit бросает файл не найден исключение о том, что он не может найти файл и заявляет, что это выглядит внутри папки Program Files \ Nunit.net 2.0

Так что я понятия не имею, почему код делая это, и чтобы сделать вещи более запутанными, когда я вытягиваю Enviornment.CurrentDirectory, он дает мне правильный путь (путь к моей папке отладки), а не путь к nunit. Также, если я использую это вместо использования относительного пути, мои тесты будут работать без проблем. Поэтому мой вопрос: кто-нибудь знает, почему в случае загрузки относительных путей из моего двоичного файла nunit решает использовать его каталог вместо каталога, в котором находится двоичный файл, и где хранятся изображения? Благодарю.

ответ

0

Я не уверен, почему это происходит, но хотелось бы упомянуть что-то, что может помочь вам немного разобраться. Есть ли у вас какие-либо утверждения Path Constraint в ваших тестах? Это может помочь вам устранить эту проблему.

Вот ссылка NUnit.org для синтаксиса: http://www.nunit.org/index.php/extensions/docs/2.4/files/index.php?p=pathConstraints&r=2.5.1

Ниже приведен пример (по ссылке выше) синтаксиса для относительных путей. Вы можете утверждать, что ваш относительный путь совпадает с абсолютным путем и посмотреть, что происходит. По крайней мере, у вас будет конкретный неудачный тест о путях, которые вам понадобятся для прохождения.

Assert.That("/folder1/./junk/../folder2", 
    Is.SamePath("/folder1/folder2")); 
Assert.That("/folder1/./junk/../folder2/x", 
    Is.Not.SamePath("/folder1/folder2")); 
+0

Кстати, я знаю, что мой ответ - не полный ответ, но хотел получить образец кода там, и трудно сделать, чтобы они выглядели красиво в пространстве комментариев. – Paddyslacker

Смежные вопросы