【问题标题】:Global Mock with Pester PowerShell使用 Pester PowerShell 进行全局模拟
【发布时间】:2019-02-06 11:28:39
【问题描述】:

我已经使用 PesterHelpers 为我的模块构建了一套测试,并开始添加功能测试。我根据需要运行最小、规范和完整的测试脚本来测试我的工作。我发现我一遍又一遍地使用相同的模拟,将它们从一个脚本复制到另一个脚本。是否可以创建一个所有测试脚本都可以在公共和私有目录中使用的全局模拟?

【问题讨论】:

    标签: powershell unit-testing pester


    【解决方案1】:

    您可以将您的模拟放入另一个文件并将它们点源到您的脚本中:

    . .\mocks.ps1
    

    这将在您的脚本中节省一些重复,但也会使它们更加晦涩。

    我认为 Pester 中没有任何概念可以以更全局的方式声明 Mocks,因为我相信它们的范围仅限于声明它们的每个 describe 或 context 块。

    【讨论】:

    • 谢谢!我正在使用 VSCode,它在 UI 中提供了一个不错的“运行测试|调试测试”。我总是与 PowerShell 路径作斗争。如果我相对于主测试脚本创建它,则各个测试无法正确解析路径。你知道我怎样才能得到我的蛋糕并把它也吃掉吗?
    • 一般的做法是使用 $PSScriptRoot 这将是脚本所在的路径,然后从那里去相对路径(如果它是同一个目录很容易,如果它是上面的目录,那么你可以使用 \..等)
    【解决方案2】:
    (Resolve-Path ($PSScriptRoot + "\..\..\..\AOI\UDT\testfile.text"))
    

    使用这个。您将能够在任何地方使用您的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多