如果单元测试失败,我可以停止MSBuild部署应用程序吗?

时间:2013-09-12 11:34:52

标签: visual-studio-2012 msbuild tfs2010 tfsbuild webdeploy

所以我使用以下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有更聪明的方法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

我通常让我的构建只是吐出WebDeploy包(例如DeployTarget = Package),然后在我的工作流结束时运行一个InvokeProcess来运行PowerShell脚本来进行实际部署。

答案 1 :(得分:-1)

如果您使用的是默认的TFS构建模板,则有一个部分可以在构建测试失败时失败,默认设置为False。将此设置为true可能正是您所要求的。

在构建定义中:
1.转到处理选项卡
2.展开基本部分
3.展开自动化测试
4.展开测试源
5.更改“失败构建测试失败”字段的值。