Я пытаюсь проанализировать скрипт Pester и извлечь значения из параметра -Tag
. Кто-нибудь знает, как это сделать, используя [System.Management.Automation.PSParser]
?. Я думал, что мне придется перебирать токены, возвращаемые с [System.Management.Automation.PSParser]::Tokenize()
, но это кажется довольно клонистым и учитывая, что значения для -Tag
могут быть предоставлены в разных форматах, не очень практичны.Анализ синтаксического сценария PowerShell с AST
В конце дня я надеюсь вернуть коллекцию с именем блока Describe
и списком тегов (если они есть) для этого блока.
Name Tags
---- ----
Section1 {tag1, tag2}
Section2 {foo, bar}
Section3 {asdf}
Section4 {}
Вот примеры тестов Pester, с которыми я работаю.
describe 'Section1' -Tag @('tag1', 'tag2') {
it 'blah1' {
$true | should be $true
}
}
describe 'Section2' -Tag 'foo', 'bar' {
it 'blah2' {
$true | should be $true
}
}
describe 'Section3' -Tag 'asdf'{
it 'blah3' {
$true | should be $true
}
}
describe 'Section4' {
it 'blah4' {
$true | should be $true
}
}
У кого-нибудь есть идеи, как это решить? Есть [System.Management.Automation.PSParser]
правильный путь, или есть лучший способ?
Приветствия
Спасибо @ w0xx0m. С небольшим изменением мне удалось вытащить теги как [string] или [string []]. – devblackops