我正在为我的 Powershell 模块编写单元测试,每个模块都有一个文件,并且 Describe
每个函数的 block 。 Context
block 根据我试图用一些安排代码测试的行为组织测试,我的 It
block 包含最少的安排/行为代码和一个断言。
我可以使用 Invoke-Pester "Path/To/Module"
将我的测试限制为只运行一个测试文件
我也可以根据 Describe
进行限制使用 Invoke-Pester "Path/To/Module" -TestName @("RunThisDescribe","AndRunThisDescribe")
block
因为我正在向现有的 It
添加新断言(通过新的 file
block )/Describe
/Context
,我想单独测试/调试我的新断言,而不运行给定描述/上下文的其余断言(但我在描述/上下文范围内设置的任何模拟/变量仍然可用。
我在开发新断言时一直在注释掉我现有的断言,然后删除 block 注释并在完成新测试后运行它们。这可行,但很笨重。
有没有办法运行Invoke-Pester
只执行给定的 It
列表秒?
除了让所有测试运行或将它们注释掉之外,是否有更好的开发/调试新测试的工作流程?
最佳答案
我知道,这个问题很老了,但值得更新:
从 Pester 版本 5 开始,您可以在所有内容上使用 Tag
:Describe
、Context
、It
这使得运行特定断言变得非常容易,而不是其他任何事情。 您甚至可以排除特定标签。
请参阅https://pester.dev/docs/usage/tags了解详情。
如果您打算从版本 4 迁移到版本 5,请同时检查制动变化! Invoke-Pester 有一些已弃用的参数,例如 -TagFilter和 -ExcludeTagFilter .在最新版本的pester中,你可以通过New-PesterConfiguration指定标签。
关于powershell - Invoke-Pester 只运行一个 Assert/It block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56960448/