如何排除 Pester 配置中的路径?

How to exclude Paths in the Pester configuration?

我们的模块目录结构如下:

C:\Program Files\WindowsPowerShell\Modules\Toolbox.CustomModule1
C:\Program Files\WindowsPowerShell\Modules\Toolbox.CustomModule2
C:\Program Files\WindowsPowerShell\Modules\ModuleDownloaded
C:\Program Files\WindowsPowerShell\Modules\ModuleDownloadedOther

所有以 'Toolbox.' 开头的 PowerShell 模块都是我们创建的,并且是唯一需要使用 Pester 5 进行测试的模块。我希望可以使用通配符:

$config = [PesterConfiguration]@{
    Run = @{
        Path = "C:\Program Files\WindowsPowerShell\Modules\Toolbox.*"
    }
}
Invoke-Pester -Configuration $config

但是上面失败了,因为 Path 不支持通配符。由于下载的模块与 Pester 5 不兼容,仅使用 C:\Program Files\WindowsPowerShell\Modules 也失败了。因此在查找文档时我偶然发现了这个:

$test = [PesterConfiguration]::Default
$test.Filter | Format-List

Tag : Tags of Describe, Context or It to be run. (System.String[], default: System.String[]) ExcludeTag : Tags of Describe, Context or It to be excluded from the run. (System.String[], default: System.String[]) Line : Filter by file and scriptblock start line, useful to run parsed tests programatically to avoid problems with expanded names. Example: 'C:\tests\file1.Tests.ps1:37' (System.String[], default: System.String[]) FullName : Full name of test with -like wildcards, joined by dot. Example: '*.describe Get-Item.test1' (System.String[], default: System.String[])

但这似乎并没有谈论完整的文件名。有没有一种简单的方法可以做到这一点(而不是简单的 foreach 但来自 PesterConfiguration 本身?

好像是bug in Pester 5.1。支持通配符,将在新版本中修复。