2

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

谢谢。

4

2 回答 2

1

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

于 2013-09-12T18:08:30.417 回答
-1

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

在构建定义中:
1. 转到 Process 选项卡
2. 展开 Basic 部分
3. 展开 Automated Tests
4. 展开 Test Source
5. 更改“Fail Build On Test Failure”字段的值。

于 2013-11-27T19:22:06.663 回答