Pester样例脚本在Windows 10上出现“-Be不是有效的Should运算符”错误,但在Ubuntu上正常运行。

11

我是新手,按照 Pester Github 页面 https://github.com/pester/Pester 的说明在 Ubuntu 16.04 上安装了 Powershell 和 Pester。执行它们的示例脚本 Get-Planet.Tests.ps1 和 Get-Planet.ps1,发现一切都如广告所说的那样工作。尝试按照它们的说明在 Windows 10 上进行同样的操作,结果出现了 "-Be 不是有效的 Should 运算符"。

由于我对 Pester 和 Powershell 都不熟悉,不确定问题出在哪里。这是他们自己的示例,按照他们的说明安装,没有做任何修改。希望能得到帮助。


如果我没记错的话,这是版本之间的差异。 - user2864740
@user2864740 我该如何检查我正在运行哪个版本的 Pester?我尝试过 Invoke-pester --version,但没有用。文档中也没有找到任何信息。 - kkuilla
@kkuilla -- Get-Command *Pester* 将会给出所有名称包含 "Pester" 的命令的信息,并包括版本号。 - Leon Bambrick
2个回答

20

在另一个答案的基础上,Windows 10 (以及Server 2016) 预装了Pester 3.4.0版本。从 Pester 4版本开始,更改了一些 Pester语法,包括Should断言,现在作为参数提供 (例如:Should Be 变成 Should -Be)。

文档反映了更新的语法,因此对于旧版本的Pester会产生误导。

您可以通过在管理员级别的 PowerShell窗口中运行以下命令,在Windows 10计算机上安装最新版本的Pester:

Install-Module -Name Pester -Force -SkipPublisherCheck

想要了解 Pester 3 和 4 版本之间的其他变化,请参见此处:


3

根据用户user2864740的建议,问题原来是Windows 10系统上安装了错误版本的Pester。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接