[英]PowerShell/Pester function invoke missing logs and interactivity
这是我的设置(简化),我在其中创建一个 function 并将其传递给Run-Test
,然后Run-Test
调用 function。但是发生的事情是我只看到警告消息。 我想知道有没有办法以交互方式准确地查看它在每一步和每行中的作用?
function Run-Test
{
param(
[Parameter(Mandatory = $true)]$test,
[Parameter(Mandatory = $true)]$name,
[Parameter(Mandatory = $true)]
[Alias('resourceGroupName')]
[String[]]$resourceGroupNames
)
Describe $name {
Context "BeforeEach/AfterAll" {
BeforeAll {
Write-Output "Cleaning up before running test: $name"
foreach ($rgName in $resourceGroupNames)
{
Unlock-ResourceGroup -Name $rgName
}
}
AfterAll {
Write-Output "Cleaning up after running test: $name"
foreach ($rgName in $resourceGroupNames)
{
Unlock-ResourceGroup -Name $rgName
}
}
It "Should succeed failover and failback" $test
}
}
}
Run-Test `
-Name "Testing ..." `
-ResourceGroupName $primaryResourceGroupName, $recoveryResourceGroupName -Test {
# Create primary and recovery resource groups
New-AzResourceGroup -name $recoveryResourceGroupName -location $location -force
New-AzResourceGroup -name $primaryResourceGroupName -Location $location -Force
$primaryResourceGroupId = (Get-AzResourceGroup -Name $primaryResourceGroupName).ResourceId
$recoveryResourceGroupId = (Get-AzResourceGroup -Name $recoveryResourceGroupName).ResourceId
# print these
$primaryResourceGroupId
$recoveryResourceGroupId
}
使用 PowerShell ISE,您可以调试脚本以准确查看每一行发生的情况。
在 ISE 中打开您的脚本。 当您在 .ps1 文件的上下文菜单中选择“编辑”时,这是默认设置。 或者打开 ISE,然后从那里打开脚本。
现在在要开始调试的位置设置一个断点:将 cursor 放在您选择的行中,然后按 F9。
现在运行脚本。 它应该停在那条线上。 您现在可以逐行单步执行脚本并检查发生了什么。
来源: https://devblogs.microsoft.com/scripting/use-the-powershell-debugger/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.