Pester:无法访问父作用域变量

2024-03-07

我在 Pester 中有以下简单的测试:

# Name.Tests.ps1

$name = "foo"

Describe "Check name" {
  It "should have the correct value" {
    $name | Should -Be "foo"
  }
}

因此,当我导航到包含测试脚本的文件夹并运行时Invoke-Pester,我期待测试能够通过。相反,我收到以下错误:

[-]Check name.should have the correct value. Expected 'foo', but got $null...

知道为什么会失败以及为什么$name中设置为 nullIt阻止 - 不应该$name仍设置为foo因为它来自父范围?


Pester v5 有需要遵循的新规则,其中之一如下(https://github.com/pester/Pester#discovery--run https://github.com/pester/Pester#discovery--run):

将所有代码放入 It、BeforeAll、BeforeEach、AfterAll 或 每个之后。请勿将代码直接放入Describe、Context 或顶部 您的文件,而不将其包装在这些块之一中,除非您 有充分的理由这样做。 ... 所有放错位置的代码都将在 Discovery 期间运行,并且其结果不会 在运行期间可用。

因此将变量赋值放在BeforeAll or BeforeEachDescribe块应该让它工作:

Describe "Check name" {
  BeforeAll {
    $name = "foo"
  }
  It "should have the correct value" {
    $name | Should -Be "foo"
  }
}

感谢@Mark Wragg 为我指明了正确的方向!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pester:无法访问父作用域变量 的相关文章

  • 用于根据源列表移动文件的 Powershell 脚本 (.txt

    我的目录中有数千个文件 pdf xls doc 它们都有相似的命名约定 类型 始终是常量字符串 即 账单或发票 帐户名称 帐号 type pdf 帐户名称 帐号 type doc 帐户名称 帐号 type xls 手头的任务是接收帐户名和帐
  • 使用 Powershell 从 JSON 获取值

    非常初学者的问题 我正在尝试使用 Powershell 从 JSON 获取某些值 具体来说 我想列出服务 测试00000 and FAKE only 当我运行下面的脚本时 我得到 TEST00000 FAKE Enabled True Pr
  • 在 PowerShell 中调用静态通用 LINQ 扩展方法

    人们可以使用以下简单的表示法在 PowerShell 中调用许多 LINQ 方法 int numbers 1 10000 Linq Enumerable Sum numbers 在调用中包含 lambda 甚至是一件相对简单的事情 Func
  • Jenkins 中的 Powershell 转义路径字符

    我有一个声明性管道 应该执行 powershell 步骤来安装路径 路径作为参数提供 parameters string name UNC defaultValue server01 lab local shared data descri
  • Powershell“特殊”开关参数

    我有下面的powershell功能 Function Test Param Parameter string Text default text Write Host Text Text 我希望能够像下面这样调用这个函数 测试 文本 应该在
  • Windows Sandbox PowerShell 登录命令窗口不可见

    我正在尝试通过 PowerShell 登录命令使用 Windows Sandbox 这是LogonCommand我的 WSB 文件的部分
  • Powershell Bash/Zsh 命令中的多个参数

    无法在 Powershell 中运行以下 Bash Zsh 命令 KeyPath Join Path Path this Plate ChildPath install tekton key kubectl create secret do
  • 在 PowerShell 错误消息中使用 touch 命令创建新文件

    我的桌面上有一个使用 PowerShell 创建的目录 现在我尝试在其中创建一个文本文件 我确实将目录更改为新目录 然后输入touch textfile txt 这是我收到的错误消息 touch The term touch is not
  • 如何从计划任务中删除触发器

    我使用 PowerShell 中的任务计划程序 cmdlet 为 Perfmon 数据收集器集的计划任务配置触发器 我使用以下命令来修改计划任务并在服务器启动时启动数据收集器集 trigger New ScheduledTaskTrigge
  • Powershell 设置盖子关闭操作

    我想自动设置 Windows 7 在我的工作笔记本电脑上合上盖子时所执行的操作 因为每次登录时都会通过 GPO 重置该操作 我知道我可以在批处理脚本中使用 powercfg 命令来实现此目的 powercfg setacvalueindex
  • 如何在一行中输出多个变量

    我试图确定 CSV 中的用户是否处于活动状态 此外 我想知道它们是否是服务帐户 用户帐户或基于 OU 的计算机帐户 一切都在膨胀 直到我尝试输出它 输出分为几行 每个变量一行 我希望输出在一行上 中间有逗号 这样我完成后就会有一个 CSV
  • Azure 函数核心工具安装卡在 Visual Studio Code 中

    我创建了 Azure 函数应用程序来执行 powershell 脚本 想先在我的本地运行它来测试它 当我运行它时 无论有没有调试选项 都会出现一个弹出窗口 其中显示 您必须安装 Azure Functions 核心工具才能调试本地函数 当我
  • 在powershell中检查文件是否可读且正常

    我是 powershell 新手 我想检查文件是否可读且正常 在 unix 中 我们可以使用 f 和 r 在一行中完成此操作 例如 以下 shell 脚本函数接受文件名作为参数并检查文件的可读性和规律性 与此等效的 powershell 是
  • 如何在 IIS 8 中远程停止/启动应用程序池

    注意 每条线使用一行 我在 IIS 6 中使用了这些命令 它们工作得很好 Start get wmiobject namespace root MicrosoftIISv2 computername REMOTE SERVER class
  • PowerShell 和 StringBuilder

    我是 PowerShell 新手 但熟悉 NET 类 我在用System Text StringBuilder在 PowerShell 脚本中 脚本是这样的 Function MyStringFunc String line r New O
  • 并行启动服务

    我有一个脚本可以检查不同服务器上的某些服务是否已启动 如果没有启动 该脚本应该启动该服务 问题是 它不会并行启动服务 而是等待每个服务启动 Code server list Get Content path D Path list of s
  • 将 Metro 应用程序固定到任务栏 Windows 10 Powershell

    以下代码将固定 Metro 应用程序以在给定 AUMID 的情况下启动 如果你改变 match Pin To Start 不幸的是 将匹配更改为 固定到任务栏 不起作用 这里发生了什么 function Pin Taskbar param
  • 在远程桌面上使用 Powershell 获取 Windows DisplayLanguage

    我正在尝试通过 powershell 获取 Windows 显示语言设置远程计算机 我尝试了 Get WinUserLanguageList 但这会返回所有语言的列表 Get WinSystemLocale 和 Get Culture 也不
  • Powershell Invoke-Command 远程手动工作,但不能通过 Jenkins

    我遇到了一个非常奇怪的情况 即从 Windows Server 2012 R2 手动运行相同的命令时可以工作 但从同一服务器上运行的 Jenkins 从属进程无法工作 首先 手动运行的输出 管理 PowerShell 窗口 PS C Use
  • PowerShell 模块中忽略 Write-Verbose

    我希望使用Write Verbose脚本和函数中的命令行开关 它在脚本 ps1 文件中按预期工作 但在模块 psm1 文件中则不然 该 commandlet 在模块中被忽略 运行以下脚本 PS gt scaffold ps1 verbose

随机推荐