Private/Get-TestName.ps1


function Get-TestName {
    param(
        $ast
    )

    for($i = 1; $i -lt $ast.Parent.CommandElements.Count; $i++) {
        if ($ast.Parent.CommandElements[$i] -is 'System.Management.Automation.Language.CommandParameterAst') {
            $i++; continue
        }
        if ($ast.Parent.CommandElements[$i] -is 'System.Management.Automation.Language.ScriptBlockExpressionAst') {
            continue
        }
        if ($ast.Parent.CommandElements[$i] -is 'System.Management.Automation.Language.StringConstantExpressionAst') {
            return $ast.Parent.CommandElements[$i].Value
        }
    }

    throw 'Could not determine test name'
}