У меня есть класс C# со следующим кодом.Как относительные пути в моем классе C# работают с NUnit 3.x?
class Database
{
private const string DatabaseFilepath = @"Settings\Database.xml";
...
private void LoadDatabase()
{
XmlDocument databaseDocument = new XmlDocument();
databaseDocument.Load(DatabaseFilepath);
}
}
Теперь этот код выполняется нормально, когда я скомпилировать его, и он умеет читать из файла Database.xml
. Однако, когда я запускаю единичный тест, который выполняется для выполнения этого кода с помощью NUnit, я получаю следующее исключение.
Результат Сообщение: System.IO.DirectoryNotFoundException: Не удалось найти часть пути 'C: \ Program Files (x86) \ Microsoft Visual Studio 14,0 \ Common7 \ IDE \ Settings \ Database.xml' ,
Теперь, когда я использовал инструменты для тестирования Visual Studio, это сработало отлично. Однако при переключении на NUnit он выглядит как в другом рабочем каталоге. Как я могу это изменить?
Примечание: Я нашел другие вопросы, которые задают вопрос об использовании относительных путей в test. В моем примере мои относительные пути находятся в моем классе.
Какая версия NUnit? От NUnit 2.x до 3.x произошло нарушение. –
NUnit 3.x, извините за непонятный. Будет редактировать сообщение. – ArKi
Мне показалось нелепо, что у вас есть модульные тесты для кода, который совсем не подходит для производства. Во-первых, ваш путь жестко закодирован, а тот факт, что он относительно ** pwd ** еще хуже. Если бы я запустил ваше приложение из своей домашней папки, у меня была бы такая же проблема. – MarioDS