Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 如果单元测试失败,是否可以停止MSBuild部署应用程序?_Visual Studio 2012_Msbuild_Tfsbuild_Webdeploy - Fatal编程技术网

Visual studio 2012 如果单元测试失败,是否可以停止MSBuild部署应用程序?

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

因此,我使用以下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是否有更聪明的方法来实现这一点


谢谢。

我通常让我的构建简单地吐出WebDeploy包(例如DeployTarget=package),然后在我的工作流末尾有一个InvokeProcess,它运行powershell脚本来执行实际的部署。

如果您使用默认的TFS构建模板,有一个部分使构建测试失败,默认设置为False。将此设置为true可能会完全满足您的要求

在生成定义中:
1.转到“流程”选项卡
2.展开基本部分
3.展开自动测试
4.扩展测试源

5.更改“测试失败时生成失败”字段的值。

这确实会将生成标记为失败,但仍会触发部署。这不会阻止部署生成。