我有一个PS脚本,它将运行各种单元测试。这将以可读的方式显示屏幕上的输出
$strTests = @(
"test1.dll",
"test2.dll"
)
foreach($test in $strTests)
{
packages\xunit.runner.console.2.0.0\tools\xunit.console $test
}
但是我想修改此脚本,以便在测试失败时,它不会继续运行其他测试。我试过了:
$result = packages\xunit.runner.console.2.0.0\tools\xunit.console $test
然而,这会阻止输出进入屏幕。我曾尝试使用Write-Host来显示内容,但它的表现方式并不像以前的版本那么漂亮。另外,它只是在运行结束时而不是同时转储输出。
如果失败,我还想检查运行和中断的结果。
答案 0 :(得分:1)
您需要的是cmdlet tee-object
,它允许您指定要输出到的管道数据的路径,或者保存管道数据的变量名称。所以你的命令看起来像这样:
packages\xunit.runner.console.2.0.0\tools\xunit.console $test | Tee-Object -Variable Results
然后您的输出将照常转到屏幕,并存储在$Results
变量中。