小编Mar*_*n K的帖子

Pester:如何阻止我的脚本运行?

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

苏特.ps1:

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)

sut.tests.ps1:

$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。

powershell pester

5
推荐指数
1
解决办法
1164
查看次数

标签 统计

pester ×1

powershell ×1