Сборка TFS2010 развертывает веб-сайт, даже если интеграционные тесты не пройдены - PullRequest
0 голосов
/ 06 августа 2011

У меня есть сборка, которую я пытаюсь сделать в TFS2010 (сервер 2008R2), и она не выполняет то, что я хочу. Я хочу, чтобы код собирался (у меня есть закрытая политика регистрации), и при успешной сборке я хочу запускать тесты (модульные и интеграционные тесты) Если (и только если) все тесты пройдены, я хочу, чтобы сборка была развернута на IIS7 сервер.

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

В одном из моих тестов (специально) я добавил Assert.IsTrue (1 == 2); и в журнале я вижу, что сборка не удалась, но сайт все еще развернут на моем сервере IIS. У меня установлены аргументы MSBuild: / p: DeployOnBuild = True / p: DeployTarget = MsDeployPublish / p: CreatePackageOnPublish = True / p: MSDeployPublishMethod = RemoteAgent / p: MSDeployServiceUrl = http://111.11.11.111/msdeployagentservice / p: DeployI = p: DeployI = / p: имя пользователя = APP-107 \ Администратор / p: пароль = xxxxxx / p: конфигурация = выпуск

Почему развертывание по-прежнему происходит, даже если тест не пройден, и у меня установлено определение сборки "Disable Tests = false" и "Fail build on test test"

Спасибо Jack

Ps. Я, может быть, и пример там, который объясняет, как изменить BuildProcessTemplate.xaml, чтобы остановить развертывание при сбое теста?

Ответы [ 2 ]

0 голосов
/ 09 августа 2011

После попытки в течение полного дня у меня это частично взбито.Я нашел образец, очень похожий на мой, по адресу: http://www.codebadger.com/blog/post/2011/07/14/TFS-Team-Build-2010-Only-deploying-if-unit-tests-pass.aspx

Теперь мне просто нужно выяснить, как не позволить ему строить дважды.По крайней мере, теперь у меня есть модульные и интеграционные тесты перед развертыванием.

0 голосов
/ 07 августа 2011

MSBuild Activity в DefaultBuildTemplate.xaml запускается до любого из ваших тестов. Поэтому он всегда будет делать то же самое независимо от результатов вашего теста. Чтобы исправить это, добавьте MSBuild Activity после тестов в DefaultBuildTemplate.xaml в ветке «If Tests Successful» и разверните в этом действии.

...