Я мигрировал с TPv1 на TPv2 (тестовая платформа v2).Я запускаю свои тесты, используя vstest.console.exe
.Я использовал файл .testsettings
для развертывания дополнительных файлов, которые требовались для моих тестов (обычно это XML
с некоторыми данными).Скелет моего решения следующий:
Мой TestSettings1.testsettings
следующий:
Я использую эту команду для запуска своих тестов:
@SET LOCAL_SETTINGS=C:\data\Development\Solution14
@SET VSTEST_CONSOLE="C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/Extensions/TestPlatform/vstest.console.exe"
%VSTEST_CONSOLE% C:\data\Development\Solution14\UnitTestProject1\bin\debug\UnitTestProject1.dll ^
/Settings:%LOCAL_SETTINGS%\TestSettings1.testsettings
Очень удобно использовать .testsettings
для развертывания элементов.
Итак, по некоторым причинам я больше не могу использовать .testsettings
, но могу использовать атрибуты .runsettings
и DeploymentItem
.
С .testsettings
Мне не нужно добавлять кусок кода в каждый проект для развертывания моих файлов.Я просто использую флаг /Settings
с vstest.console.exe
, и это развертывание относится к проекту, который я хочу.С DeploymentItem
я должен использовать некоторый код в каждом проекте модульного тестирования.Эти части кода одинаковы, и мне это не нравится.Я не хочу добавлять один и тот же код в каждый проект.
Вопрос: Каков наилучший способ применить одно и то же поведение развертывания для каждого проекта без написания повторяющегося кода.
В настоящее время я использую build-event s и xcopy
, чтобы скопировать их в папку DeploymentItems (я создаю это mkdir
в build-event) каждой папки bin / Debug .После этого я добавляю [DeploymentItem("DeploymentItems")]
, который развертывает все файлы из этой папки.Это не выглядит хорошо, потому что у меня есть 3 идентичных пакета build-events для каждого .csproj
.И если я добавлю новые данные .xml
, мне нужно будет добавить новую инструкцию build-even t к каждой .csproj
снова.Когда я использовал .testsettings
, у меня не было этой проблемы.