我正在测试 PowerShell 脚本。我想测试单个函数而不执行整个脚本。我不确定这是否是预期的用例或受支持,并且我在网上搜索时找不到好的答案
Param(
[Parameter(Mandatory = $true,
Position = 0)]
[ValidateNotNullOrEmpty()]
[string] $Message
)
function fut([string] $argument) {
Write-Host $argument
}
function Main() {
fut($Message)
}
Main
Run Code Online (Sandbox Code Playgroud)
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
. "$here\$sut" "Message"
Describe "fut" {
It "does something useful" {
fut 'beer'
}
}
Run Code Online (Sandbox Code Playgroud)
Message
Describing fut
beer
[+] does something useful 385ms
Tests completed in 385ms
Run Code Online (Sandbox Code Playgroud)
现在我可以嘲笑“啤酒”,因为它在描述块中运行。但我不能嘲笑“消息”,因为当我点源它时脚本开始执行。
就我而言,“消息”是我不想执行的操作。
我使用的是 Windows 10 15063。
| 归档时间: |
|
| 查看次数: |
1164 次 |
| 最近记录: |