问题标签 [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.
powershell - 在哪里放置 Pester 变量?
我最近开始使用 Pester 在 PowerShell 中编写测试,并且运行基本测试没有问题,但是我正在寻找构建一些更复杂的测试,并且我正在努力处理我需要的变量测试。
我正在编写测试来验证一些云基础设施,所以在我们运行部署之后,它会通过并验证它是否已正确部署并且一切都在它应该在的位置。因此,我们需要验证大量变量、VM 名称、网络名称、子网配置等。
在普通的 PowerShell 脚本中,这些将存储在脚本之外并作为参数输入,但这似乎不符合 Pester 或 BDD 的设计,我是否应该在测试中对这些变量进行硬编码?这似乎不是很直观,尤其是如果我可能想将这些测试重新用于其他环境。我确实尝试将它们存储在外部 JSON 文件中并将其读入我的测试中,但即便如此,我也需要在我的脚本中硬编码 JSON 文件的路径。还是我做错了,有更好的方法?
unit-testing - 使用 Pester 模拟 [System.IO.Path]::IsPathRooted()?
如何[System.IO.Path]::IsPathRooted()
使用 Pester 模拟?我尝试了以下但没有运气。
powershell - -Verbose 不适用于我在 PowerShell 中的 Pester 测试
我写了一个纠缠测试来检查某些文件夹和文件是否存在。纠缠测试效果很好,但如果使用 -Verbose 选项调用测试,我想包括修复建议。但我似乎无法将 -Verbose 参数用于实际测试。
文件夹/文件结构:
以下只是纠缠测试的顶部:
powershell - 在 Windows 7 上安装 Pester
我正在尝试在 Windows 7 机器上运行 Pester 测试。我按照这里的说明进行操作,还安装了 PSGet 并执行了Install-Module Pester
。
这适用于我拥有的两台 Windows 7 机器。我可以从提升的 PowerShell 控制台运行纠缠测试。
我有一个运行 Pester 测试的 .cmd 文件,但我无法从提升的命令提示符运行它。这适用于一台 Windows 7 机器,但不适用于另一台机器。
我按照相同的说明在两台机器上安装 Pester。请建议我可能会缺少什么。
在“不起作用”的机器上:当我从 PowerShell 运行 Pester 脚本时,Invoke-Pester
工作和脚本按预期运行。但是,当我尝试运行指向纠缠脚本的 .cmd 文件时,我收到一条错误消息,提示Invoke-Pester
无法识别为 cmdlet 函数;这意味着,据我了解,Pester 没有在命令提示符下工作。
在“工作”的机器上:
我能够从 PowerShell 和命令提示符窗口运行 Pester 脚本。脚本按预期运行。
powershell - 在 Pester 中对集合中的每个项目进行断言
我正在 Pester 中进行一些基础设施测试,并且存在重复的场景,我不知道如何处理。
假设,我想检查是否在 IIS 上启用了所有必需的 Web 角色。我有一组必需的 Web 角色,我想为每个角色声明它已启用。
我当前的代码如下所示:
如果未启用/安装任何角色,则测试将失败。但是,如果这种 Pester 测试的输出如下所示,那几乎没有用处:
这个结果没有提供任何关于哪个功能是禁用的任何线索。
在这些情况下有什么推荐的做法吗?我在考虑一些字符串操作......
这将输出:
...哪个更好,但感觉不是很好...
此外,第二个问题是测试将在第一次失败时停止,我需要在修复每个功能后重新运行测试......
有任何想法吗?
powershell - 使用 -ParameterFilter 时未调用 Get-Date 的 Pester Mock
我创建了一个新的 Pester 夹具,并试图模拟对Get-Date
CmdLet 的调用,但它不起作用。如果我不使用它确实有效-ParameterFilter
。
假人.ps1
dummy.Tests.ps1
输出
我尝试过使用-eq
而不是-match
for -ParameterFilter
,没有任何区别。
我觉得我必须在非常基本的层面上做错了什么,但看不到它 - 任何人都可以帮助我吗?
如果有任何区别,那就是在 Windows 10 虚拟机上;的输出$PSVersionTable
是:
powershell - 有没有办法模拟$?使用 Pester 返回?
我正在使用 Pester 为 PowerShell 应用程序编写测试。
我已经能够为大多数函数创建模拟,但我无法模拟返回$? 多变的。我目前正在使用它来评估 AWS CLI 命令的返回。
例如,这是为了模拟失败的 AWS CLI 命令返回。
有什么想法吗?
unit-testing - Visual Studio 不会对 Pester 单元测试执行应用 Powershell 模块更改
我在 Visual Studio 2015 中创建了一个“Powershell 模块项目”,并为该模块编写了一些函数。当我对.psm1
文件进行更改并尝试使用 Pester 框架(.test.ps1
文件)对这些更改进行单元测试时,新更改不会在测试期间应用。这发生在 Visual Studio 2015 和 Visual Studio 2017 中。
我试过了:
- “清洁解决方案”、“重建解决方案”和“构建解决方案”
- “卸载项目”和“重新加载项目”
- “关闭解决方案”和“打开解决方案”
到目前为止,我发现的唯一解决方案是重新打开 IDE。
这个问题可能来自哪里,还有其他解决方案吗?
powershell - 如何在 Azure Function Timer Trigger 中调用 PowerShell Pester 测试?
做一个Invoke-Pester x.tests.ps1
包含一个Describe
块和一个It
检查布尔值的块。该功能因以下原因而失败。
unit-testing - Mandatory=True 的 Pester 单元测试功能
一段时间以来,我正在慢慢学习使用 Powershell 的精彩 Pester 单元测试。我有点纠结于检查我的函数是否可以运行“如果没有向函数提供任何强制性输入”。这给了我一个红灯,并希望获得绿色测试结果并继续编码。
所以我有一个功能如下。
我的测试脚本执行以下检查...
我从 AppVeyor 的输出显示了这个结果,其中 [+] 是绿色,[-] 是红色,这是我尽我所能避免的。
感谢您提供任何帮助,因为我希望那里有一个绿色条件,因为我不确定如何克服来自 Powershell 的某些类型的消息响应并将其转换为单元测试......