Visual Studio Test Project - не копирует папку при развертывании - PullRequest
14 голосов
/ 08 апреля 2009

Вот проблема:
1. Создайте TestProject в своем решении Visual Studio.
2. Откройте файл .testrunconfig и в пункте меню «развертывание» установите флажок «Включить развертывание».
3. Теперь нажмите кнопку «Добавить каталог ...» и добавьте папку, в которой есть несколько файлов.
4. Запустите тестовый проект (используйте фиктивный тест).

Хорошо, теперь перейдите к папке TestResults: вы увидите, что все файлы были скопированы напрямую (на верхний уровень) - сама папка не скопирована (с файлами под ними) Это портит мои пути во время тестирования. Кто-нибудь может сказать, как скопировать папку, а не только файлы внизу?

Спасибо.

Ответы [ 4 ]

17 голосов
/ 15 апреля 2009

Используйте атрибут [DeploymentItem] в тестовых классах, которые его используют. Вы можете указать каталог:

[TestClass]
[DeploymentItem("blahblah\\myDirectory", "myDirectory")]
public class MyTest
{

}

Примечание:

  • DeploymentItem очень медленно запускает тесты. Кажется, копировать 2 файла в секунду.
  • Вы можете указать атрибут в базовом классе теста. Но это не всегда работает, если у вас более одного тестового проекта.
  • Возможно, вы можете указать его в TestClass, у которого есть метод, помеченный [AssemblyInitialize] Тогда вы должны предоставить его только один раз. Не уверен, вы должны попробовать.
  • Исходный каталог относится к местоположению решения. Это вряд ли задокументировано.
11 голосов
/ 28 августа 2010

Откройте файл .testsettings в блокноте. Теперь вы должны увидеть, что для каждой папки нужно скопировать

<DeploymentItem filename="FolderName\" />

Измените это на

<DeploymentItem filename="FolderName\" outputDirectory="FolderName\" /> 
0 голосов
/ 29 марта 2011

У меня сегодня тоже была эта проблема. Я решил эту проблему, добавив папку с именем "deploy_files" в проект, который содержал необходимую папку. Затем я помещаю нужную папку в папку "deploy_files". Затем я открыл файл LocalTestRun.testrunconfig в папке «Элементы решения» в обозревателе решений. Перешел на панель «Развертывание» в окне свойств testrunconfig. Добавил каталог "deploy_files" для развертывания и вуаля. Папка внутри которой была скопирована в папку Out результатов теста.

0 голосов
/ 16 сентября 2009

Другой вариант, который у вас есть, - создать еще одну папку под исходной папкой, и затем эта папка будет развернута в исходящем каталоге. Например, у вас может быть такая структура:

TestFolder /

TestFolder / TestDeployment /

А затем в testrunconfig вы по-прежнему выбираете папку TestFolder, и папка TestDeployment будет развернута в выходной каталог.

...