Я пытаюсь написать тесты Пестера для моих модулей Runbook автоматизации Azure. Сценарий runbook использует командлет Get-AutomationVariable
, и я пытаюсь смоделировать его с помощью:
mock 'Get-AutomationVariable' {return "localhost:44300"} -ParameterFilter { $name -eq "host"}
, что приводит к ошибке
CommandNotFoundException: термин «Get-AutomationVariable» не является
распознается как имя командлета, функции, файла сценария или работоспособного
программа.
Проверьте правильность написания имени или, если путь был включен,
проверьте правильность пути и повторите попытку.
Использование параметра -ModuleName
не представляется целесообразным, поскольку я вызываю метод из сценария, а не из модуля. Попытка предоставить модуль-заглушку приводит к той же самой ошибке, выдаваемой.
. "$here\$sut" "CN=teset, OU=Test" "CN=SubCA02, OU=Test"
Get-Module -Name RunbookMock | Remove-Module
New-Module -Name RunbookMock -ScriptBlock {
function Get-AutomationVariable {
[CmdLetBinding()]
param(
[string]$Name
)
""
}
Export-ModuleMember Get-AutomationVariable
} | Import-Module -Force
describe 'Pin-Certificate' {
it 'should add an entry to the pinned certificate list'{
mock 'Get-AutomationVariable' { return "sastoken"} -ParameterFilter { $Name -eq "StorageSasToken"} -
mock 'Get-AutomationVariable' {return "localhost:44300"} -ParameterFilter { $name -eq "host"}
}
}