3
我試圖找出如何有參數糾纏測試缺少強制參數:測試與糾纏
查找-Waldo.Tests.ps1
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
Describe 'Mandatory paramters' {
it 'ComputerName' {
{
$Params = @{
#ComputerName = 'MyPc'
ScriptName = 'Test'
}
. "$here\$sut" @Params
} | Should throw
}
}
Find- Waldo.ps1
Param (
[Parameter(Mandatory)]
[String]$ComputerName,
[String]$ScriptName
)
Function Find-Waldo {
[CmdletBinding()]
Param (
[String]$FilePath
)
'Do something'
}
每次我試圖assert
結果或乾脆運行TES t,它會提示我輸入ComputerName
參數,而不是通過測試。
我在這裏錯過了一些超級明顯的東西嗎?有沒有辦法測試強制參數的存在?
你不應該試圖以這種方式來測試'Mandatory'屬性,[按照從球隊本評論](https://開頭的github (Get-Command Get-Command).Parameters ['Name']。Attributes |?{$ _ -/PowerShell/PowerShell/issues/2408#issuecomment-251140889) –
可以給出一個關於如何使用'是[參數]})。必須|在上面的例子中,腳本應該是$ false? – DarkLite1
'Get-Command'也可以在腳本文件上運行:'(Get-Command「$ here \ $ sut」)。參數' –