2011-11-18 95 views
4

我正在使用的TeamCity建立我的持续集成服务器,我有我的版本(.NET/VS2010/MSBUILD)团队市防止生成步骤从运行

  1. 使用的MSBuild建立我的解决方案三个步骤。
  2. 运行NUnit测试。
  3. 使用MSBUILD做我的项目的Web部署。

我试图解决的问题是防止步骤3运行,如果任何测试失败。这可能吗?

+0

如果测试失败,没有你的构建失败?如果不是,那就是我专注的地方。一旦你有了这个工作,你可以选择将Web部署推入一个独立的构建,这取决于你的实际构建。我更喜欢这个选项,因为我认为它们是独立的进程,并且应该单独成功/失败。 –

+0

不幸的是,目前似乎没有可能使用teamcity http://youtrack.jetbrains.net/issue/TW-12194 – iamkrillin

回答

2

您可以通过处理输出参数“ExitCode”然后执行MSBuild Error Task取决于“ExitCode”或执行Deploy任务/目标取决于此条件来执行此操作,因此取决于您。

错误任务:

停止构建并记录基础上的评估条件语句错误。 的错误任务允许的MSBuild项目问题的错误文字记录器和停止建设执行

<!-- Build --> 
<Build .... /> 

<!-- Run tests --> 
<Nunit ....> 
    <Output TaskParameter="ExitCode" 
      PropertyName="NUnitResult" /> 

<!-- Stop build in case of error whilst tests run -->  
<Error Text="Tests failed" 
     Code="$(NUnitResult)" 
     Condition="'$(NUnitResult)' != '0'"/> 

<!-- Deploy -->  
<Deploy Condition="'$(NUnitResult)' != '0'"/ ... /> 
+0

现在我正在TeamCity中使用多个构建步骤。因此,虽然构建可能失败,但该过程中的所有步骤都将被执行。我希望能够在MSBuild文件中完成所有工作,但是我找不到可以运行Web部署发布的构建任务的文档。我打算尝试使用Exec任务运行MSDeploy.exe。 –

相关问题