Visual studio 2012 如果单元测试失败,是否可以停止MSBuild部署应用程序?
因此,我使用以下MSBuild参数将自动部署添加到CI生成中:Visual studio 2012 如果单元测试失败,是否可以停止MSBuild部署应用程序?,visual-studio-2012,msbuild,tfsbuild,webdeploy,Visual Studio 2012,Msbuild,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\my
/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是否有更聪明的方法来实现这一点
谢谢。我通常让我的构建简单地吐出WebDeploy包(例如DeployTarget=package),然后在我的工作流末尾有一个InvokeProcess,它运行powershell脚本来执行实际的部署。如果您使用默认的TFS构建模板,有一个部分使构建测试失败,默认设置为False。将此设置为true可能会完全满足您的要求 在生成定义中:
1.转到“流程”选项卡
2.展开基本部分
3.展开自动测试
4.扩展测试源
5.更改“测试失败时生成失败”字段的值。这确实会将生成标记为失败,但仍会触发部署。这不会阻止部署生成。