问题标签 [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.
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 逻辑的自动化测试? 集成测试很有趣,打破依赖关系的单元测试最有趣。
powershell - 有人在 Powershell 中使用 BDD 吗?
我在stackoverflow上找到了很多关于这个问题的线索。他们现在2岁了。所以我想知道是否有人使用scottmuc函数在 powershell 中执行 BDD。乍一看,它似乎非常强大。
你对此有何看法?有人知道其他一些非常有效的 BDD 框架吗?我想要一些非常接近rspec的东西。
注意我需要 BDD 而不是 TDD (PSUnit) 建议/指示。
没有多少人在powershell上使用BDD,看到了答案:)。这是否意味着BDD根本没有用,只是因为powershell只是脚本?我不认为这是一个正当的理由。
无论如何,这里的列表到现在:
powershell - 是否可以只包含函数而不执行脚本?
假设我有MyScript.ps1:
是否可以仅以某种方式点源函数?问题是如果上面的脚本是点源的,它会执行整个事情......
我最好的选择是使用Get-Content
和解析函数并使用 Invoke-Expression ...?或者有没有办法以编程方式访问 PowerShell 的解析器?我看到这可能与 PSv3 一起使用[System.Management.Automation.Language.Parser]::ParseInput
,但这不是一个选项,因为它必须在 PSv2 上工作。
我问的原因是我正在尝试Pester PowerShell 单元测试框架,它对函数运行测试的方式是通过点源文件与测试夹具中的函数。测试夹具如下所示:
MyScript.Tests.ps1
unit-testing - Powershell 的单元测试框架
3年前有一个关于Powershell单元测试框架的问题,How to do TDD and unit testing in powershell?,当时所有的框架都很新:
- PSUnit:http ://www.psunit.org/
- 纠缠:https ://github.com/scottmuc/Pester
- PowerSpec:在 github /shishkin/PowerSpec
3年后,我想他们已经进化并成熟了。现在我想做 TDD(以前从未做过),但我不知道该使用哪一个。在网上搜索,貌似 PSUnit 和 Pester 是最常用的。
你在使用它们吗?它们各自的优缺点是什么?有什么推荐吗?
谢谢,
unit-testing - 使用带有属性的“Pester”(PowerShell 单元测试框架)
我正在尝试围绕一些 PowerShell 代码包装一个文本夹具,该代码扩展了一个具有属性的对象。我收到一个似乎是由 Pester 引起的错误。我在下面有一个人为的例子,它显示了我正在尝试做的事情。
有没有人成功地为使用 Pester 属性的函数编写测试?
我得到的错误:
我的功能:
我的测试代码:
powershell - Pester (Powershell BDD) 中的 Create-Fixture 不起作用
我正在按照这里的说明进行操作:
http://scottmuc.com/blog/development/pester-bdd-for-the-system-administrator/
我发现安装并导入模块后我仍然无法运行 Create-Fixture。
有没有人遇到过这个?
powershell - 在 Pester 中进行模拟时,如何使用带有 switch 参数的 parameterFilter?
使用 Pester,我正在模拟一个高级功能,该功能除了其他参数外,还需要一个开关。如何-parameterFilter
为包含 switch 参数的模拟创建一个?
我试过了:
无济于事。
code-coverage - 如何使用 Pester 获得所有分支的代码覆盖率?
已经编写了多个测试用例来使用 Pester 测试新的 Chocolatey 功能。如何检查是否所有分支都已覆盖?
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
在任一模拟中都不起作用。
powershell - 从 Sublime Text 运行 PowerShell Pester 测试的有效方法
我正在使用 Sublime Text (ST) 来创建我的 PowerShell 脚本,Pester 来测试它们。
要运行测试脚本,必须切换到该选项卡,然后按CTRL+ B。必须为每个测试脚本重复此过程。
Sublime Text 是否有一种简单的方法来运行项目目录中的所有测试?
有没有办法让这些测试在脚本或测试更改时自动运行(类似于guard)?