Проект тестирования Visual Studio - не копирует папку при развертывании
Вот проблема:
1. Создайте тестовый проект в своем решении Visual Studio.
2. Откройте файл .testrunconfig и в пункте меню "развертывание" установите флажок "Включить развертывание".
3. Теперь нажмите кнопку "Добавить каталог..." и добавьте папку, в которой есть некоторые файлы.
4. Запустите тестовый проект (используйте фиктивный тест).
Хорошо, теперь перейдите в папку TestResults: вы увидите, что все файлы напрямую скопированы (на верхний уровень) - сама папка не копируется (с файлами под ними). Это путает мои пути во время тестирования. Может ли кто-нибудь сказать, как скопировать папку, а не только файлы под ней?
Спасибо.
Ответы
Ответ 1
Используйте атрибут [DeploymentItem]
на тестовых классах, которые его используют. Вы можете указать каталог:
[TestClass]
[DeploymentItem("blahblah\\myDirectory", "myDirectory")]
public class MyTest
{
}
Примечание:
- DeploymentItem очень медленно запускает тесты. Кажется, он копирует 2 файла в секунду.
- Вы можете указать атрибут в базовом классе теста. Но это не всегда работает, если у вас есть несколько тестовых проектов.
- Возможно, вы можете указать его на TestClass, который имеет метод, помеченный
[AssemblyInitialize]
. Тогда вы должны предоставить его только один раз. Не уверен, вы должны попробовать.
- Исходный каталог относится к местоположению решения. Это вряд ли документируется.
Ответ 2
Откройте файл .testsettings в блокноте. Теперь вы должны увидеть, что для каждой папки для копирования
<DeploymentItem filename="FolderName\" />
Измените это на
<DeploymentItem filename="FolderName\" outputDirectory="FolderName\" />
Ответ 3
Другой вариант, который у вас есть, - создать другую папку под исходной папкой, а затем эта папка будет развернута в каталог out. Например, вы можете создать такую структуру:
TestFolder/
TestFolder/TestDeployment/
И затем в testrunconfig вы по-прежнему выбираете папку TestFolder, и папка TestDeployment будет развернута в каталог out.
Ответ 4
У меня была эта проблема слишком сегодня. Я решил это, добавив в проект папку с именем "deployment_files" , содержащую требуемую папку. Затем я помещаю нужную папку в папку "deployment_files" . Затем я открыл файл LocalTestRun.testrunconfig в папке "Элементы решения" в обозревателе решений. Пошел на панель "Развертывание" в окне свойств testrunconfig. Добавлен каталог "deployment_files" для развертывания и voila. Папка в ней была скопирована в папку результатов вывода результатов.