问题标签 [pester]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
15778 浏览

unit-testing - 如何在 Powershell 中进行 TDD 和单元测试?

随着 MS 将 powershell 推入所有新的服务器产品,我开始(不情愿地)认为我需要认真对待它。“认真对待”的一部分是 TDD。您是否找到了对 power shell 脚本进行单元测试的好方法?

我从Geek Noise 先生那里找到了嘲笑的样本——但我真的很喜欢RhinoMocks之类的东西。Brian Hartsock有一个来自 MS Test 的 powershell 字符串运行测试示例。有点hacky,但它似乎工作。

我想要的是一种与“真实”语言一样干净的 Powershell TDD 体验。


更新澄清:

前两个答案试图引导我远离测试 Powershell。意见很有趣。我不想知道在 powershell 中测试是否是个好主意。这是一个主观问题,应该在不同的论坛中提出。我想要一个单元测试powershell的解决方案。如果您认为这是一个坏主意(可能是),请将其视为一个有趣的学术问题。

  • 是的,脚本语言将不同的系统粘合在一起。然而,正如已经指出的,用动态语言模拟和打破接缝也很容易。
  • 我不是在问“调试”。调试是一个非常有用的话题。我让别人问。
  • 也许 PS 脚本应该很简单。该语言支持模块化,并且不可避免地会在 PS 中实现复杂的流程(即使是一个坏主意)。
  • 这个问题的答案不是“你不能”。我可以看到(从链接的博客 - 有点旧)有些人已经在这个问题上取得了进展。

重新声明:您如何以 xUnit 的风格实现 Powershell 逻辑的自动化测试? 集成测试很有趣,打破依赖关系的单元测试最有趣。

0 投票
2 回答
1126 浏览

powershell - 有人在 Powershell 中使用 BDD 吗?

我在stackoverflow上找到了很多关于这个问题的线索。他们现在2岁了。所以我想知道是否有人使用scottmuc函数在 powershell 中执行 BDD。乍一看,它似乎非常强大。

你对此有何看法?有人知道其他一些非常有效的 BDD 框架吗?我想要一些非常接近rspec的东西。

注意我需要 BDD 而不是 TDD (PSUnit) 建议/指示。


没有多少人在powershell上使用BDD,看到了答案:)。这是否意味着BDD根本没有用,只是因为powershell只是脚本?我不认为这是一个正当的理由。

无论如何,这里的列表到现在:

0 投票
2 回答
1320 浏览

powershell - 是否可以只包含函数而不执行脚本?

假设我有MyScript.ps1

是否可以仅以某种方式点源函数?问题是如果上面的脚本是点源的,它会执行整个事情......

我最好的选择是使用Get-Content和解析函数并使用 Invoke-Expression ...?或者有没有办法以编程方式访问 PowerShell 的解析器?我看到这可能与 PSv3 一起使用[System.Management.Automation.Language.Parser]::ParseInput,但这不是一个选项,因为它必须在 PSv2 上工作。

我问的原因是我正在尝试Pester PowerShell 单元测试框架,它对函数运行测试的方式是通过点源文件与测试夹具中的函数。测试夹具如下所示:

MyScript.Tests.ps1

0 投票
0 回答
568 浏览

unit-testing - Powershell 的单元测试框架

3年前有一个关于Powershell单元测试框架的问题,How to do TDD and unit testing in powershell?,当时所有的框架都很新:

3年后,我想他们已经进化并成熟了。现在我想做 TDD(以前从未做过),但我不知道该使用哪一个。在网上搜索,貌似 PSUnit 和 Pester 是最常用的。

你在使用它们吗?它们各自的优缺点是什么?有什么推荐吗?

谢谢,

0 投票
2 回答
1087 浏览

unit-testing - 使用带有属性的“Pester”(PowerShell 单元测试框架)

我正在尝试围绕一些 PowerShell 代码包装一个文本夹具,该代码扩展了一个具有属性的对象。我收到一个似乎是由 Pester 引起的错误。我在下面有一个人为的例子,它显示了我正在尝试做的事情。

有没有人成功地为使用 Pester 属性的函数编写测试?

我得到的错误:

我的功能:

我的测试代码:

0 投票
1 回答
228 浏览

powershell - Pester (Powershell BDD) 中的 Create-Fixture 不起作用

我正在按照这里的说明进行操作:

http://scottmuc.com/blog/development/pester-bdd-for-the-system-administrator/

我发现安装并导入模块后我仍然无法运行 Create-Fixture。

有没有人遇到过这个?

0 投票
3 回答
3700 浏览

powershell - 在 Pester 中进行模拟时,如何使用带有 switch 参数的 parameterFilter?

使用 Pester,我正在模拟一个高级功能,该功能除了其他参数外,还需要一个开关。如何-parameterFilter为包含 switch 参数的模拟创建一个?

我试过了:

无济于事。

0 投票
2 回答
765 浏览

code-coverage - 如何使用 Pester 获得所有分支的代码覆盖率?

已经编写了多个测试用例来使用 Pester 测试新的 Chocolatey 功能。如何检查是否所有分支都已覆盖?

0 投票
1 回答
456 浏览

unit-testing - 如何使 Pester 使用流水线命令

此 PowerShell 函数识别包含特定字符串的文件:

我试图通过模拟 Get-ChildItem 和 Select-String 来编写 Pester 单元测试,但遇到了问题。这是两次以相同方式失败的尝试。第一个测试使用 Mock'sparameterFilter来区分,而第二个测试在其mockCommand自身中添加了执行此操作的逻辑。

如果我修改测试以使用 Select-String-path参数$_.FullName代替,$_那么两个测试都会通过。但在现实生活中(即,如果我在没有模拟的情况下运行这条线)它只适用于$_. (它也可以与 . 一起正常工作$_.FullName。)因此,真正的 Select-String 似乎能够从 Path 参数的 FileInfo 对象数组中映射 FullName(尽管我找不到这样做的参数别名)。

我的问题:是否可以保留原始代码,即将 Path 参数保留$_在被测行上,然后修改 Select-String 模拟以提取 FullName 属性?例如,尝试$Path.FullName在任一模拟中都不起作用。

0 投票
1 回答
915 浏览

powershell - 从 Sublime Text 运行 PowerShell Pester 测试的有效方法

我正在使用 Sublime Text (ST) 来创建我的 PowerShell 脚本,Pester 来测试它们。

要运行测试脚本,必须切换到该选项卡,然后按CTRL+ B。必须为每个测试脚本重复此过程。

Sublime Text 是否有一种简单的方法来运行项目目录中的所有测试?

有没有办法让这些测试在脚本或测试更改时自动运行(类似于guard)?