Я занимаюсь написанием некоторых модульных тестов, которые создают файлы.MSTest: тесты на запись в TestContext
В настоящий момент я использую TestContext
TestResultsDirectory для создания создаваемого файла (результаты для утверждения). Синтаксис выглядит следующим образом:
//Create directory
Directory.CreateDirectory(TestContext.TestResultsDirectory);
//Create file.
File.Create(TestContext.TestResultsDirectory + @"\Test.txt");
Мой вопрос в основном почему TestResultsDirectory
не создается?
Когда я только что позвонил File.Create
, тест завершился неудачно с DirectoryNotFoundException
.
Это правильный способ использования TestContext
или есть какой-либо атрибут, такой как [SetPath]
, который мы можем установить на уровне метода, чтобы среда выполнения создавала пути, связанные с тестированием?
Технически вы не создаете «единичный тест», потому что модульные тесты выполняются изолированно и не взаимодействуют с внешними ресурсами, такими как база данных, системные часы и файловая система. – Steven
Концептуально да, вы правы. Тест состоит в том, чтобы обновить текстовый файл и убедиться, что он содержит правильный текст.Для целей аудита мы должны убедиться, что «изменение» хранится в файле. Поскольку тестовый контекст генерируется во время выполнения, тесты могут выполняться любым разработчиком (это ключ для выбора тестового контекста). Немного путайте, почему в тестовом контексте есть указатели на каталоги, которые не существуют. – msuhash
Где вы искали созданный каталог? Вы пробовали System.Console.WriteLine (Path.GetFullPath (Path.Combine (TestContext.TestResultsDirectory, «Test.txt»)))? – k3b