Прочитать значения из файла свойств в пестере

Я хочу прочитать данные из файла свойств в 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, а также позволил бы вам добавлять дополнительные свойства в будущем по мере расширения вашего кода.

Другие вопросы по тегам