Describe 'Testing of MyInvocation' -Tags "CI" { It 'MyInvocation works in Function' { function myfunc { $MyInvocation.Line.IndexOf("myfunc") | Should BeGreaterThan -1 } { . myfunc } | Should Not Throw {& myfunc } | Should Not Throw } It 'MyInvocation works in Filter' { filter myfilter { $MyInvocation.Line.IndexOf("myfilter") | Should BeGreaterThan -1 } {. myfilter } | Should Not Throw { & myfilter } | Should Not Throw } Context 'MyInvocation works in Script block' { It 'MyInvocation works in dot sourced Script block' { $a = . {$MyInvocation.Line} $a.IndexOf('$a = . {$MyInvocation.Line}') | Should BeGreaterThan -1 } It 'MyInvocation works in & Script block2' { $a = & {$MyInvocation.Line} $a.IndexOf('$a = & {$MyInvocation.Line}') | Should BeGreaterThan -1 } It 'MyInvocation works when run Script file' { $a = & {$MyInvocation.ScriptName} $a.ToLower().IndexOf("myinvocation.tests.ps1") | Should BeGreaterThan -1 } It 'MyInvocation works when dot source Script file' { $a = . {$MyInvocation.ScriptName} $a.ToLower().IndexOf("myinvocation.tests.ps1") | Should BeGreaterThan -1 } } }