powershell - Invoke-Pester 只运行一个 Assert/It block

标签 powershell testing pester

我正在为我的 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:DescribeContextIt

这使得运行特定断言变得非常容易,而不是其他任何事情。 您甚至可以排除特定标签。

请参阅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/

相关文章:

Powershell - 文件已存在时的另存为功能

powershell - Psake 和 robocopy 失败

testing - 通过电子邮件发送 VSTS 2008 测试结果

unit-testing - Pester Mock 不适用于使用脚本 block 的 Invoke-Command

powershell - 由于脚本 block ,无法达到 100% 纠缠代码覆盖率

powershell - 如何应用多个DSC配置?

powershell - 路径中的 .cmd 与 .ps1

python - 基本 Python 数据结构接口(interface)的测试

java - 模拟类方法的 NullPointerException

powershell - Mock 函数应该如何接受 Pester 中的管道输入?