Я написал всю логику для своего тестового проекта, но столкнулся с проблемой попытки установить переменные конфигурации в классе, который я хочу запустить. Класс требует, чтобы для переменной workingDirectory
был задан путь к файлу в зависимости от среды, в которой выполняется программа (например, рабочая или тестовая), и сейчас переменная имеет значение null. Как настроить параметры конфигурации так, как если бы класс выполнялся нормально (поскольку параметры конфигурации устанавливаются, когда класс запускается сам по себе или когда он не тестируется)?
Я попытался добавить файл app.config, который используется в тестируемом классе, в тестовый проект, но он все равно не установит переменные конфигурации для меня.
private static readonly string WorkingDir = ConfigurationManager.AppSettings["WorkingDirectory"];
var files = Directory.GetFiles($@"{WorkingDir}\in"); //this results in the
//filepath being "C:\in" when testing since the WorkingDir configuration
//variable doesn't get set when the class is called from the test project
<add key="WorkingDirectory" value="\\Test" xdt:Transform="Insert"/>
Переменная конфигурации должна быть "\ Test", когда класс запускается из тестового проекта, но вместо этого имеет значение null или пробел. Это приводит к ошибке, потому что нет каталога, который соответствует строке, указанной в строке кода Directory.GetFiles()
, и поэтому он не найдет файлы, которые я хочу найти.