问题标签 [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 - 嵌套模块中的问题模拟
1. 在上面的标题中提供问题的一般摘要
2. 描述你的环境
3. 预期行为
预计将调用模拟函数,更多信息如下。
4.当前行为
我正在尝试模拟嵌套模块中的函数。文件结构是这样的:
我在 NestedModule1.psm1 中运行一个函数,该函数调用 NestedModule2.psm1 中的一个函数。我希望 NestedModule2.psm1 中的函数返回一个错误代码(在我们端定义为'99'),所以我尝试使用它来模拟它
我希望这个模拟函数会被调用,所以我使用下面的函数来检查:
从这个功能我收到回来RuntimeException: You did not declare a mock of the NestedModule2_function Command.
我原以为它只被调用了一次,但似乎错误是说我根本没有模拟该函数,或者至少没有正确模拟它。我还尝试删除 Assert-MockCalled 并查看它是否运行,并且它使用非模拟函数。
我们之前已经让模拟函数与非嵌套函数一起工作,但运气不佳。根据 Pester 的 README,我确实尝试确保根模块至少为“*.psm1”。
5. 可能的解决方案
我试图查看一些其他关于模拟和模拟嵌套模块的开放问题,https://github.com/pester/Pester/issues/204。但是,我无法获得任何可以让代码使用它的东西。
6. 背景
我无法有效地使用 Pester 来测试我的 PowerShell 代码。
相关 Github 问题在此处打开:https ://github.com/pester/Pester/issues/1017
pester - Pester - XML 文件的代码覆盖率输出不起作用
使用上面的脚本,我试图将代码覆盖率输出导出到 out.xml 但它没有被导出
pester - 如何使用 Pester 模拟模块不可用的 cmdlet?
我正在尝试为我的 Azure 自动化运行手册编写 Pester 测试。Runbook 脚本使用Get-AutomationVariable
cmdlet,我试图通过以下方式模拟它:
导致错误
CommandNotFoundException:术语“Get-AutomationVariable”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。
检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
该-ModuleName
参数的使用似乎不合适,因为我是从脚本而不是模块调用该方法。尝试提供存根模块会导致抛出相同的错误。
unit-testing - 如何防止 Pester Mocked Read-Host 在代码覆盖期间提示输入
我有一个 Pester 测试,我在其中模拟了我的函数的 Read-Host 调用,它遵循此问题中的格式:
使用这种格式并直接调用测试时,我的测试运行良好。但是,当我使用 Invoke-Pester "MyTestFile" -CodeCoverage "MyFileUnderTest" 运行包含我的测试的文件时,系统会提示我为我的测试输入 Read-Host 值。
我的意图是测试将自动运行,而无需输入 Read-Host 值。直接调用测试(当前有效)和使用 CodeCoverage 命令调用我的测试文件时都会出现这种情况。
有谁知道实现这一目标的方法?
编辑:
对于我收到的第一条评论,我已经查看了 Pester 的文档,包括此链接https://github.com/pester/Pester/wiki/Unit-Testing-within-Modules。但是,我还没有看到 Pester 关于使用 Read-Host 的任何官方文档,并且使用了我在问题顶部的 StackOverflow 链接中找到的解决方案。
模块 Test-Foo 函数的源代码:
powershell - 即使捕获到异常,Pester 也无法通过测试
我有一个专门处理异常并忽略它的实用程序函数,但是当用 Pester 测试它时,测试失败,显示已经捕获和处理的异常。我是否遗漏了什么,或者这是 Pester 中的错误?
此代码重现了该问题:
预期结果:测试通过
实际结果: 测试失败:
powershell - 如何正确纠缠测试 Import-Clixml
所以首先我需要声明我对 Pester 很陌生,可能没有正确编写我的测试或者没有正确理解它的所有功能。
所以背景是我想用 Pester 自动化我的 PowerShell 模块,并且到目前为止已经编写了一些测试。
我的模块的一部分是将配置内容保存在 clixml 文件中。我想编写一组测试以确保保存和获取配置按预期工作。
基本上我有一个功能来保存配置文件和一个检索它。我的 Pester 测试如下所示:
现在我尝试了该it
块的几种变体:
即使我将匹配值更改为不正确的值,Pester 也总是返回通过的测试。Pester 在所有情况下都会这样做。因此,出于某种原因,Pester 没有正确限定这些值并且总是返回一个肯定的结果。
所以我想知道我做错了什么。显然,如果值确实匹配,Pester 应该通过测试,但是当它们不匹配时它应该失败。
arrays - 如何在 Pester 中将两个数组与自定义对象进行比较
objects
我们正在努力让 Pester 测试失败或通过,具体取决于array
.
测试.ps1
我们似乎无法做到这一点。我们是否使用了错误的 CmdLets?还是有另一种检查方法?有时array
也只是另一个对象的属性。因此需要进行深入比较。
powershell - 纠缠自定义错误文本
有谁知道 Pester 是否支持自定义错误文本?
假设我有以下测试:
Get-HelloWorld
如果返回“Hello World”以外的另一个字符串,有没有办法可以设置一些自定义错误消息?
谢谢
powershell - 如何正确测试模拟 CmdLet 的 ErrorVariable 值?
我们正在尝试在测试中检查ErrorVariable
of中的值。但是由于某种原因,没有实例化。Invoke-Command
Pester
-ErrorVariable
即使添加[CmdletBinding()]
选项,它仍然没有填充。我们在这里缺少什么?