Прочитать значения из файла свойств в пестере
Я хочу прочитать данные из файла свойств в powershell, используя pester Framework, но столкнулся с ошибкой.
Файл свойств:
vmsize1='Standard_D3_V2'
vmsize2='Standard_DS1_V2'
Код:
Context "VIRTUAL MACHINE" {
$file_content = get-content "$here/properties.txt" -raw
$configuration = ConvertFrom-String($file_content)
$environment = $configuration.'vmsize1'
It "CHECKING THE SIZE OF VM" {
$environment | Should -Be "Standard_D3_V2"
}
}
Выход:
Context VIRTUAL MACHINE
[-] CHECKING THE SIZE OF VM 78ms
Expected 'Standard_D3_V2', but got $null.
694: $environment | Should -Be "Standard_D3_V2"
Пожалуйста, помогите мне решить эту проблему!
1 ответ
Решение
Это достижимо, слегка изменив код.
$configuration = ConvertFrom-StringData(get-content "$here/properties.txt" -raw)
$configuration.vmsize1
Однако это не самый лучший способ, и я бы посоветовал использовать JSON, поскольку я обнаружил, что его намного проще сериализовать в PowerShell. Сохраните это как ваш properties.json
файл
{
"vm1": {
"size": "Standard_D3_V2"
},
"vm2": {
"size": "Standard_D3_V2"
}
}
ваш код будет выглядеть
$fileContent = Get-Content "$here/properties.json" -raw
$configuration = ConvertFrom-Json $fileContent
$configuration.vm1.size
Этот способ упростил бы обновление из-за жесткости JSON, а также позволил бы вам добавлять дополнительные свойства в будущем по мере расширения вашего кода.