所以我使用以下MSBuild参数为我的CI构建添加了自动部署:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:MSDeployPublishMethod=RemoteAgent
/p:CreatePackageOnPublish=True
/p:DeployIisAppPath="myWebsite/myAppname"
/p:MsDeployServiceUrl=myServer
/p:username=myDomain\myUserName
/p:password=myPassword
显然,名字已经改变以保护无辜者:)
我的问题是此部署在单元测试运行之前运行。如果构建因单元测试失败而失败,则构建仍会部署到Web服务器。
如果单元测试失败,如何防止部署?使用VS2012和TFS2010有更聪明的方法吗?
感谢。
答案 0 :(得分:1)
我通常让我的构建只是吐出WebDeploy包(例如DeployTarget = Package),然后在我的工作流结束时运行一个InvokeProcess来运行PowerShell脚本来进行实际部署。
答案 1 :(得分:-1)
如果您使用的是默认的TFS构建模板,则有一个部分可以在构建测试失败时失败,默认设置为False。将此设置为true可能正是您所要求的。
在构建定义中:
1.转到处理选项卡
2.展开基本部分
3.展开自动化测试
4.展开测试源
5.更改“失败构建测试失败”字段的值。