首页 > 解决方案 > 如何排除 Pester 配置中的路径?

问题描述

我们有一个模块的目录结构,如下所示:

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

所有以“工具箱”开头的 PowerShell 模块。是我们创建的,也是唯一需要用 Pester 5 测试的。我希望可以使用通配符:

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

但上述失败,因为通配符不支持在Path. 由于下载的模块与 Pester 5 不兼容,使用 onlyC:\Program Files\WindowsPowerShell\Modules也失败了。因此,我偶然发现了以下文档:

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

标签:描述、上下文或要运行的标签。(System.String[],默认值:System.String[]) ExcludeTag :要从运行中排除的 Describe、Context 或 It 的标签。(System.String[],默认值:System.String[]) Line :按文件和脚本块开始行过滤,有助于以编程方式运行已解析的测试以避免扩展名称出现问题。示例:'C:\tests\file1.Tests.ps1:37'(System.String[],默认值:System.String[]) FullName:测试的全名,带有 -like 通配符,由点连接。示例:'*.describe Get-Item.test1'(System.String[],默认值:System.String[])

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

标签: powershellpester

解决方案


似乎是Pester 5.1 中的一个错误。支持通配符,它​​将在新版本中得到修复。


推荐阅读