Как включить образцы файлов данных в модульные тесты VS? - PullRequest
17 голосов
/ 22 марта 2011

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

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

1 Ответ

21 голосов
/ 22 марта 2011

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

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

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

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

Пример:

[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] .Путь к файлу зависит от решения.

[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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...