DirectoryInfo.Exists всегда возвращает false во время MSTest

У меня есть немного логики на границе моего приложения, связанного с созданием каталогов. Я бы хотел проверить, что он фактически создает каталоги, как ожидалось, но свойство DirectoryInfo.Exists всегда возвращает false, даже если каталог действительно существует.

См. также этот вопрос - вам нужно установить точку останова, чтобы увидеть, что каталог действительно создан, потому что MSTest удалит его, когда тест закончится.

Есть ли какая-то настройка, которая сообщает MSTest разрешить "нормальную" файловую систему ввода-вывода во время тестов?

Ответ 1

Предполагая, что вы создаете экземпляр DirectoryInfo несколько раньше, существует некоторое внутреннее кэширование состояния каталога - если вы вызываете DirectoryInfo.Refresh() для принудительного обновления, это должно работать:

var dir = new DirectoryInfo(@".\someDir");
//...other things here
dir.Refresh();
bool doesExist = dir.Exists;