Private/Get-TestFromAst.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

function Get-TestFromAst {
    param(
        $ast
    )

    $eb = $ast.EndBlock
    foreach($statement in $eb.Statements) {
        if ($statement -isnot 'System.Management.Automation.Language.PipelineAst') {
            continue
        }
        $commandAst = $statement.PipelineElements[0].CommandElements[0]

        if ($commandAst.Value -eq 'Describe') {
            Get-TestName $commandAst
        }
    }
}