Pester Should -Throw 不捕获错误

Pester Should -Throw does not catch error

这与 的问题和解决方案相同,但示例更简单,希望更容易找到,因为我花了几个小时才找到上述问题。

我要测试以下代码:

Test-Function(){
  {...}
  if($ExitCode -ne 0){
    throw "Stopped with exit code $ExitCode"
  }
}

我正在尝试使用这个来测试它:

It "Testing"{
  Test-Function -Bad "Params" | Should -Throw
}

当我 运行 这样做时,出现以下错误:

   [-] Testing 1.03s (1.03s|2ms)
    RuntimeException: Stopped with exit code 10
    At Test-Function {...}

我已经尝试使用 Should -Throw 中的确切错误消息并使用 Write-Error 而不是抛出。 None 对我有用

测试 Should -Throw 时,代码必须在脚本块内,因此它应该如下所示:

It "Testing"{
  {Test-Function -Bad "Params"} | Should -Throw
}