问题标签 [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 投票
1 回答
725 浏览

unit-testing - 使用和不使用 ParameterFilter 模拟 Get-ADUser

我很新,Pester所以请多多包涵。我们正在尝试对一个非常大的脚本进行测试,该脚本执行一些活动目录查询并验证数据。我已将其简化为以下示例:

假人.ps1

Dummy.Tests.ps1

错误:

在上述情况下,我们首先尝试收集特定 OU 中的所有用户帐户,然后收集特定安全组的所有成员。当我们拥有成员时,我们Get-ADUser再次使用 CmdLet 来获取这些特定成员的更多详细信息。

最终目标是Mock第一个Get-ADUser返回所有用户帐户,第二个MockGet-ADUser返回基于组成员身份(或模拟组成员身份)的一组特定用户帐户。

系统详情

  • PowerShell 5.1
  • 纠缠 4.1.1。
  • 视窗服务器 2012 R1
  • 广告模块 1.0.0.0。

在此处输入图像描述

0 投票
2 回答
730 浏览

powershell - Pester:如何防止我的脚本运行?

我正在测试一个 PowerShell 脚本。我想在不执行整个脚本的情况下测试单个函数。我不确定这是否是预期的用例或受支持,我在网上搜索时找不到好的答案

sut.ps1:

sut.tests.ps1:

输出

现在我可以嘲笑“啤酒”,因为它在描述块中运行。但我不能嘲笑“消息”,因为当我点源脚本时脚本开始执行。

就我而言,“消息”是我不想执行的操作。

我在 Windows 10 15063 上。

0 投票
1 回答
59 浏览

powershell - 在 PowerShell 函数和模块方面需要一些帮助

我有我正在使用的这个模块:

我正在使用这个 Pester 脚本来测试:

当我运行测试时,这是我得到的输出:

关于我可以做些什么来获得预期的 2.1.80 和 2.1.80-hotfix 值的任何想法?我尝试格式化字符串但无济于事。

我似乎无法弄清楚如何在不抛出参数$Offset的情况下传递其他变量。$Suffix

0 投票
1 回答
554 浏览

powershell - Pester ParameterFilter 与 Assert-MockCalled 不匹配

我们正在尝试检查 CmdLetStart-ScheduledTask是否已为特定的计划任务准确调用了一次。但由于某种原因,ParameterFilter不匹配。

代码

当我们删除时,ParameterFilter我们可以清楚地看到 CmdLet 已经被调用了一次。所以我假设过滤器中一定有语法错误。

0 投票
1 回答
524 浏览

pester - 如何在 Quamotion Pester 测试中使用全局变量

我正在使用 Quamotion 和 Pester 来测试我的移动应用程序。

现在,我发现自己不得不重复我在测试中使用的很多参数(例如用户名和密码)。

有没有办法在 Quamotion/Pester 测试中使用全局变量?

0 投票
0 回答
288 浏览

powershell - 需要帮助以使用 pester 测试自定义 powershell dsc 资源

我是纠缠测试的新手,并且我正在尝试测试我制作的自定义 dsc 资源,我正在测试的功能如下:

当我在没有纠缠的情况下手动测试资源时,它会返回此图像上的正确结果:get-targetresource 结果

这是我用于测试的纠缠代码:

这些测试非常简单,通常(我认为)它们都应该毫无错误地通过,问题在于当它应该返回“Present”时返回“Absent”的 Ensure 属性,如图所示:

虫害检测结果

它使用的是手动测试的相同数据,我真的不明白我在那里做错了什么?希望有人可以帮助我解决这个问题。提前致谢 !

编辑:*纠缠中的错误消息:

注意:我做了更多测试,问题似乎出在 Testdrive 上。当我直接使用脚本(点源)时,我得到了正确的结果。这仍然很奇怪,因为 testdrive 应该在测试后丢弃它的内容,而且看起来因为它没有?

0 投票
2 回答
3374 浏览

powershell - Pester 没有捕捉到抛出的错误

当我运行以下纠缠测试时,我希望它能够捕获预期的错误,但它没有。但是,当我使用不同的函数和不同的 throw 语句运行测试时,它可以工作。

虫害测试:

未捕获的错误:

0 投票
1 回答
1256 浏览

powershell - 有没有办法在 pester 中模拟 powershell 的 $PSVersionTable 变量

有没有办法$PSVersionTable用 Pester 模拟 PowerShell 的变量?

这是我的代码:

测试用例.ps1:

测试用例.Tests.ps1:

我想模拟$PSVersionTable变量,以便我可以检查它是否已被调用。

0 投票
1 回答
908 浏览

powershell - 如何在纠缠中使用强制参数模拟powershell函数

这是我的代码: Testcase.ps1

测试用例.Tests.ps1:

在这里,我想模拟一个带有强制参数的 powershell 函数,它不会向用户询问 $PSFilePath 变量值,而是使用任何虚拟值检查模拟函数。每当我运行Testcase.Tests.ps1时,它都会提示输入 $PSFilePath 值并运行源 powershell 脚本(Testcase.ps1)我被困在这个问题上,任何建议都会有很大帮助。

0 投票
2 回答
988 浏览

powershell - 从内部模拟脚本块(Pester)访问外部变量

假装我有这样的功能......

...在我的 Pester 测试脚本中...

这不起作用,但你明白我在这里想要做什么吗?我想从局部变量中获取值到 MOCK 脚本块中。我想避免对模拟中的返回值和 it 块中的预期结果进行硬编码。关于如何实现这一目标的任何想法?