调用-Pester 仅运行单个 Assert/It 块

Bra*_*ure 5 testing powershell pester

我正在为我的 Powershell 模块编写单元测试,每个模块都有一个文件,Describe每个函数都有一个块。Context块按照我尝试使用一些排列代码测试的行为组织测试,并且我的It块包含最少的排列/操作代码和断言。

我可以通过使用限制我的测试仅运行单个测试文件我也可以通过使用Invoke-Pester "Path/To/Module" 基于块进行限制DescribeInvoke-Pester "Path/To/Module" -TestName @("RunThisDescribe","AndRunThisDescribe")

It当我向现有 // 添加新断言(通过新块)file时,DescribeContext想单独测试/调试我的新断言,而不运行给定描述/上下文的其余断言(但使用任何模拟/变量)我在描述/上下文范围内设置的内容仍然可用。

在开发新的断言时,我一直在注释掉现有的断言,然后删除块注释并在完成新测试后运行它们。这可行,但很笨拙。

有没有一种方法可以Invoke-Pester只执行给定的 s 列表It?除了让所有测试运行或将它们注释掉之外,是否有更好的工作流程来开发/调试新测试?

小智 7

我知道,这个问题很老了,但值得更新:

从 Pester 版本 5 开始,您可以拥有Tag一切:Describe, Context,It

这使得运行特定断言变得非常容易,而无需执行其他任何操作。您甚至可以排除特定标签。

详细信息请参阅https://pester.dev/docs/usage/tags 。

如果您计划从版本 4 迁移到版本 5,还请检查制动更改!Invoke-Pester 有一些已弃用的参数,例如-TagFilter-ExcludeTagFilter。在最新版本的pester中,可以通过New-PesterConfiguration指定标签