DeploymentItem не развертывает файлы

Я использую MS unit testing framework для тестирования своей библиотеки C #. Мне нужно открыть файл, который я развертываю с помощью DeploymentItem attribute. Но это не файл развертывания в каталог развертывания Test.

В моем проекте Unit-test я создал папку TestFile, в этой папке есть несколько файлов, скажем a.txt, b.txt.

Теперь в моем классе Unit-test я добавил атрибут DeploymentItem. Но файл не копируется.

Вот мой код.

[TestClass]
[DeploymentItem("TestFile")]
public class CustomLibraryTest
{
    public TestContext TestContext { get; set; }

    [TestMethod]
    [DeploymentItem(@"TestFiles\a.txt")]  // THis should deploy a.txt to test deployment directory
    {
        var path = TestContext.TestDeploymentDir + "a.txt";
        // Now when I debug this unit-test, and open path in explorer,
        // a.txt is not present in "TestResults\Deploy_fhafeez 2013-05-28 13_02_37\Out" folder
    }
}

Что я делаю не так?


person fhnaseer    schedule 28.05.2013    source источник


Ответы (3)


Я нашел два возможных решения в этой ветке:

  1. Установите для свойства «Копировать в выходную папку» файлов развертывания значение «Всегда копировать» (см. Проблемы с атрибутом DeploymentItem)
  2. Проверьте параметр «Включить развертывание» в файле Local.testsettings (см. Проблемы с атрибутом DeploymentItem < / а>)

Надеюсь это поможет.

person Erik Schierboom    schedule 28.05.2013
comment
Спасибо за помощь. Я установил копировать всегда. Я выполнил развертывание с использованием тестовых настроек, на этот раз я подумал использовать DeplyomentAttribute. - person fhnaseer; 28.05.2013

Для будущих ссылок, из того, что я заметил с помощью VS 2015 - путь, который вы указываете в атрибуте элемента развертывания, должен быть относительно выходных данных сборки (папка отладки). Если ваша структура папок - «UnitTesting \ TestData \ Test.xml», DeploymentItem должно быть DeploymentItem («.. \ .. \ TestData \ Test.xml»). В этом случае папку TestData не нужно включать в проект UnitTesting.

person Ravi C    schedule 09.01.2016
comment
этот пост работает для меня, мой - VS2015 enterprise, без добавления .. \ .. \, запустите тест, всегда файл не найден - person IcyBrk; 26.10.2018
comment
Я включал название своего проекта (UnitTesting в приведенном выше примере), и это убивало его. Как только я вынул это, все заработало. Обратите внимание, что он отлично работает независимо от того, есть ли .. \ или .. \ .. \ там или нет, что заставляет меня думать, что мы уже находимся в корне и любое количество .. \ ничего не будет делать. - person David; 01.01.2019

У меня был набор тестов, в которых копия работала для некоторых тестов, но не для последней, хотя атрибут DeploymentItem был установлен точно так же. После того, как все остальное было исчерпано, я выполнил «Чистое решение» для решения и повторно запустил его, и оно начало правильно копироваться. YMMV

person Kevin McDowell    schedule 15.11.2018