如何测试没有函数的powershell脚本?

slmsl1lt  于 2022-12-18  发布在  Shell
关注(0)|答案(1)|浏览(122)

我有Azure powershell函数,run.ps1看起来很像

param($Request, $TriggerMetadata)
Write-Host $Request.Param1
Write-Host $Request.ParamB
Write-Host $Request.ParamC
return 200

这是在目录/func/myFunction/run.ps1中,我的纠缠测试在/func/Tests/my.Tests.ps1中
测试结果显示

using namespace System.Diagnostics.CodeAnalysis

Describe "Test Run" {
    BeforeAll {
        $FunctionDir = $PSScriptRoot.Replace('Tests', 'myFunction')
        . $FunctionDir\run.ps1
    }

    It "Can get OK" {
        $Request = [PSCustomObject]@{
            ParamA = 'A'
            ParamB = 'B'
            ParamC = 'C'
        }
        $result = run -Request $Request
        $result | Should -Be 200
    }
}

当调用我的测试时,我得到“术语run”无法识别...
我怎样才能用Pester运行完整的脚本并测试它的输出呢?

628mspwn

628mspwn1#

解决这个问题最简单的方法可能是使用Set-Alias

BeforeAll {
    $FunctionDir = $PSScriptRoot.Replace('Tests', 'myFunction')
    Set-Alias -Name Run -Value $FunctionDir\run.ps1
}

相关问题