我想使用杵框架从Powershell中的属性文件中读取数据,但是遇到错误。
属性文件:
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"
请帮助我解决此问题!
答案 0 :(得分: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的严格性,这种方式将使更新变得更容易,并且还允许您将来在代码扩展时添加额外的属性。