Как я могу запустить модульные тесты и развернуть мой код, не создавая решение дважды? - PullRequest
0 голосов
/ 14 февраля 2019

Я настраиваю развертывание TeamCity для сайта ASP.NET, в котором есть модульные тесты с использованием NUnit.Как я могу настроить свою сборку так, чтобы она требовала от меня только один раз сборки, но позволяла мне запускать тесты перед развертыванием моего кода?

Моя конфигурация сборки в настоящее время настроена так:

1) MSBuild - Build with no deploy.

2) NUnit - Run unit tests.

3) MSBuild - Build again, adding /p:PublishProfile and /p:DeployOnBuild parameters to deploy after building via WebDeploy.

В идеале я хотел бы собрать только один раз, чтобы сократить длину сборки, но я не хочу запускать модульные тесты после того, как код уже развернут.

Можно ли вызвать NUnit всередина шага msbuild?Это позволило бы мне объединить мои 3 шага в 1.

В качестве альтернативы, есть ли способ использовать команду msdeploy в TeamCity?Это может заменить мой третий шаг, если я могу подключить его к конечной точке WebDeploy.

1 Ответ

0 голосов
/ 14 февраля 2019

Это просто: просто напишите свой собственный файл msbuild для запуска трех целей, каждая из которых зависит от предыдущей:

Target Build - создает проект (т.е. файл решения) Target RunUnitTests - (зависит от Target Build),Это запускает юнит-тесты.Target Deploy - (зависит от Target RunUnitTests).Это развертывает ваше приложение в любом месте.

Это будет выглядеть так:

<Target Name="Build">
   <!-- Do Build Stuff here -->
</Target>

<Target Name="Tests" DependsOnTargets="Build">
   <!-- Run NUnit tests here -->
</Target>

<Target Name="Deploy" DependsOnTargets="Tests">
   <!-- Deploy your stuff here -->
</Target>

Затем в TeamCity добавьте шаг msbuild и укажите его в указанном выше файле.Затем вызовите цель «Развернуть».

...