PowerShell的 - 调用-SQLCMD:如何检查结果

问题描述:

我创建一个脚本,将在开发服务器上执行tSQLt单元测试部署ØQA才能继续 - 这是持续集成的一部分......PowerShell的 - 调用-SQLCMD:如何检查结果

这里是我的PowerShell脚本:

param(
[Parameter(Mandatory=$true)][string]$DatabaseName 
, [Parameter(Mandatory=$true)][string]$UserName 
, [Parameter(Mandatory=$true)][string]$Password 

$filelocation = "c:\jenkinsdrops" 
$DatabaseServer = "Server\DEV" 

Invoke-Sqlcmd ` 
-Query "EXEC tSQLt.RUNALL" ` 
-ServerInstance $DatabaseServer ` 
-Database $DatabaseName ` 
-U $UserName ` 
-Password $Password ` 
-Verbose 4>"$Filelocation\$DatabaseName tSQLt Report.txt"` 

在控制台输出:

enter image description here

和(详细)结果输出到文本文件是这样的: enter image description here

之前,我们触发下一步,我们必须确保所有的单元测试通过,所以这个词Failure不能出现在输出结果文件中,字failed不能在控制台输出中。

我该如何检查,或者有更好,更正确的方法来做到这一点?

只是从控制台输出中假设,目前无法测试,但try-catch块可以工作。

try { 
    Invoke-Sqlcmd ... 
} 
catch { 
    # Output a error and exit script? 
} 

最终,您需要将-ErrorAction Stop添加到Invoke-Sqlcmd。

+0

那么事情总是有回应,我需要检查单词“失败”的反应, –