Teamcity在测试报告xml导入后没有失败

时间:2012-11-04 12:17:17

标签: powershell gallio teamcity-7.0

我有一个小的powershell任务,使用Gallio运行我的所有单元测试,teamcity导入报告,但不会使构建步骤失败,也不显示失败或通过的测试数量。

那么如何让teamcity根据报告中的测试使构建失败呢?如何让它显示在状态中传递,忽略和失败的测试数量。

Add-PSSnapIn Gallio
$fileList = Get-ChildItem ./source/ -filter *.Unittests.dll -Recurse | where { $_.FullName -like "*\bin\*" } | %{$_.FullName}
Run-Gallio -Files $fileList -ReportTypes XML -ReportNameFormat unittests
Write-Output "##teamcity[importData type='nunit' path='./Reports/unittests.xml']"

日志显示文件已传递

[Step 2/2] NUnit report watcher
[12:39:11][NUnit report watcher] 1 report found for paths:
[12:39:11][NUnit report watcher] C:\TeamCity\buildAgent\work\416967dfd65045\Reports\unittests.xml
[12:39:11][NUnit report watcher] Successfully parsed

我正在使用teamcity 7.1.1

1 个答案:

答案 0 :(得分:1)

您需要确保Powershell以非零退出代码退出,例如1,以便TeamCity注意到非零代码并因错误而停止构建。

为此,请在脚本中添加以下内容:

  $host.SetShouldExit(1);
  exit 1;

这会导致Powershell退出,错误代码为1。

您可以编写脚本,以便捕获异常(测试失败),然后如上所示退出。这可以使用trap语句(powershell 1)或try / catch(powershell 2及更高版本)来完成。