- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在编写 Pester 测试来测试 Azure 资源组是否包含某些标签。以下是脚本,不幸的是,即使我们正在检查的特定资源组不包含某些标签(来自定义的数组),Pester 测试也没有报告任何失败。 Pester 测试刚刚通过,我不确定我们在这里做错了什么。
$resourceGroupName ='DemoRG03032021'
$listOfTags = @('BUSINESS-OWNER','COST-CENTER','LIFECYCLE1', 'APPLICATION','PROJECT-CODE','TECHNICAL-OWNER','BUDGET-CODE')
$checkTags = $false
Describe "Resource Group" {
Context "$resourceGroupName" {
$resourceGroup = Get-AzResourceGroup -Name $resourceGroupName
foreach ($tagName in $listOfTags)
{
It "$($resourceGroup.ResourceGroupName) has a $tagName as tag" {
$resourceGroup.tags.keys -contains $tagName | Should -Be $true
}
}
}
}
最佳答案
在 v5 中,您现在也可以这样做,我认为这更具可读性:
BeforeDiscovery {
$listOfTags = @('BUSINESS-OWNER', 'COST-CENTER', 'LIFECYCLE1', 'APPLICATION', 'PROJECT-CODE', 'TECHNICAL-OWNER', 'BUDGET-CODE')
}
BeforeAll {
$resourceGroupName = 'DemoRG03032021'
$resourceGroup = Get-AzResourceGroup -Name $resourceGroupName
}
Describe "Resource Group" -ForEach $listOfTags {
It "$($resourceGroup.ResourceGroupName) has a $_ as tag" {
$resourceGroup.tags.keys -contains $_ | Should -Be $true
}
}
编辑:将后续问题的答案放在这里,因为它更具可读性。
这就是我个人组织您在评论中发布的代码的方式。我认为实际上添加另一个逻辑 block 是有意义的。如果您将其他 It 语句放在使用 -Foreach
运行的 block 内,那么您也会为 $listOfTags
中的每个标签运行每个新测试一次,这可能不是这样你想要的。
BeforeDiscovery {
$listOfTags = @('BUSINESS-OWNER', 'COST-CENTER', 'LIFECYCLE1', 'APPLICATION', 'PROJECT-CODE', 'TECHNICAL-OWNER', 'BUDGET-CODE')
}
Describe "Resource Group Tests" {
BeforeAll {
$resourceGroupName = 'TestResourceGroup203122021'
$resourceGroupLocation = 'eastus22222'
$resourceGroup = Get-AzResourceGroup -Name $resourceGroupName
}
Context "Resource Group Tags" -ForEach $listOfTags {
It "$($resourceGroup.ResourceGroupName) has a $_ as tag" {
$resourceGroup.tags.keys -contains $_ | Should -Be $true
}
}
Context "Resource Group Attributes" {
It "Resource Group $($resourceGroup.ResourceGroupName) Exists" {
$resourceGroup | Should -Not -BeNullOrEmpty
}
It "$($resourceGroup.ResourceGroupName) Location is $resourceGroupLocation" {
$($resourceGroup.Location) | Should -Be $resourceGroupLocation
}
}
}
这是另一种思考方式。如果您写了以下内容:
Foreach ($tag in $listOfTags){
Write-Host 'do this thing for each tag'
Write-Host 'do this thing once'
}
想象每个 Write-Host 都是您的 It 语句。您不希望第二个语句与另一个语句位于相同的上下文中,因为您不希望它为 $listOfTags
中的每个值运行一次。您可以使用新的“描述”或“上下文” block 在逻辑上将其分开。
关于azure - Pester 测试不会因数组缺失值而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66594050/
我正在尝试为我的 Azure 自动化 Runbook 编写 Pester 测试。 Runbook 脚本使用 Get-AutomationVariable cmdlet,我尝试通过以下方式模拟它: mo
我正在尝试为我的 Azure 自动化 Runbook 编写 Pester 测试。 Runbook 脚本使用 Get-AutomationVariable cmdlet,我尝试通过以下方式模拟它: mo
我有一套 pester测试使用 v4.0+ should 运算符 -FileContentMatch 的 PowerShell 模块。当这些测试在装有较早 v3.x 版本 pester 的机器上运行时
function Palindrome1 { [CmdletBinding()] param ( [Parameter(Mandatory)] [str
我们正在编写 Pester 测试来测试 Azure 资源组是否包含某些标签。以下是脚本,不幸的是,即使我们正在检查的特定资源组不包含某些标签(来自定义的数组),Pester 测试也没有报告任何失败。
我正在尝试使用Pesters TestDrive为自定义文件管理Powershell函数创建测试。 但是,我没有让它以任何方式运行,总是会收到TestDrive不存在的错误。 即使使用文档中的示例:h
我正在测试 PowerShell 脚本。我想在不执行整个脚本的情况下测试单个函数。我不确定这是预期的用例还是受支持的,并且我在网上搜索时找不到好的答案 sut.ps1: Param( [Par
我们正在编写 Pester 测试来测试 Azure 资源组是否包含某些标签。以下是脚本,不幸的是,即使我们正在检查的特定资源组不包含某些标签(来自定义的数组),Pester 测试也没有报告任何失败。
当我运行以下纠缠测试时,我希望它能够捕获预期的错误,但它没有。但是,当我使用不同的 throw 语句使用不同的函数运行测试时,它会起作用。 纠缠测试: Describe "Remove-Generic
如何unmock 以前模拟的函数?有时我发现自己处于一种情况,我想测试我之前mocked 的函数。 一个简化的例子: Describe 'Pester mocking' { $testFile
我们正在尝试评估 Invoke-Command被调用了一次。 脚本.ps1 Get-Job | Remove-Job Invoke-Command -ScriptBlock {'test'} -Com
Invoke-Pester命令可以使用 -Script 调用带有显式参数的单个测试脚本。范围。但是如果我想将相同的参数传递给所有的测试脚本呢? 我不想在循环中调用 peter,因为我希望它生成单个测试
我有一个 Pester 脚本,正在为我的 API 运行一些冒烟测试。当我运行 Invoke-Pester 时,我得到了 Logo 并且测试运行良好。但是在日志的末尾我得到 Tests Passed:
我们正在努力让 Pester 测试失败或通过,这取决于 array 中的 objects 是否相等。 测试.ps1 #require Assert #require Pester $Expected
我想知道为什么在运行此脚本时会出现以下行为。我在 PowerShell ISE(v4 主机)中加载了脚本并加载了 Pester 模块。我按 F5 运行脚本。 function Test-Pester
我正在尝试找出如何对缺少的参数进行 Pester 测试: Find-Waldo.Tests.ps1 $here = Split-Path -Parent $MyInvocation.MyCommand
在 nUnit 中,我们可以这样做: Expect(actualColleciton, EquivalentTo(expectedCollection)); 和 Expect(actualCollec
我有很多模块,包括 ModuleMain 和 ModuleSql。模块之间存在相互依赖性,因此 ModuleMain 中的 Main-Function 使用了 ModuleSql 中的 4 个函数:
我正在使用 Pester 测试一个 PowerShell 脚本,该脚本点源另一个脚本。当我尝试模拟点源函数时,Pester 拒绝使用模拟版本。当我尝试通过将函数添加到 .psm1 文件并使用 Impo
编辑 问题的症结在于:如何访问在我的 It block 中的 BeforeDiscovery block 中声明的变量,这些变量没有被it -foreach $var 构造? 我很难适应 Pester
我是一名优秀的程序员,十分优秀!