Подтвердить что ты не робот

Как включить примеры файлов данных в модульные тесты VS?

У меня есть модульные тесты, которые я хочу выполнить против образца XML файла, как я могу разоблачить эти файлы для модульных тестов? Я попытался сыграть с действием сборки контента, но у меня нет доступа к контексту приложения, поэтому GetContentStream не работает.

Я знаю, что могу использовать DataContext для базы данных SQL. Но я считаю, что это неправильный подход.

4b9b3361

Ответ 1

Если вы хотите развернуть XML файл с вашими тестами, у вас есть несколько вариантов:

Встроенный контент

Вы можете вставить Xml файл в качестве содержимого внутри сборки.

  • Добавьте файл в тестовый проект. В контексте этого примера файл находится в корне проекта.
  • Измените свойства файла как встроенного ресурса.
  • Во время теста вы можете получить доступ к файлу в виде потока, используя получить ресурс манифеста.

Пример:

[TestMethod]
public void GetTheFileFromTheAssembly()
{
    Stream fileStream = Assembly.GetExecutingAssembly()
                          .GetManifestResourceStream("MyNamespace.File.xml");

    var xmlDoc = new XmlDocument();
    xmlDoc.Load(fileStream);

    Assert.IsNotNull( xmlDoc.InnerXml );
}

DeploymentItemAttribute

Вы можете аннотировать метод или класс теста с помощью [DeploymentItemAttribute]. Путь к файлу относится к soltuion.

[DeploymentItem("file.xml")] // file is at the root of the solution
[TestMethod]
public void GetTheFileDeployedWithTheTest()
{
    var xmlDoc = new XmlDocument();
    xmlDoc.Load("file.xml");

    Assert.IsNotNull(xmlDoc.InnerXml);
}

Настройки тестирования

Вы можете развернуть отдельные файлы или целые каталоги, используя конфигурацию развертывания в файле параметров тестирования. (Тесты → Изменить настройки → Параметры файла .testsettings)

enter image description here