PowerShell:
テストの作成

方法:

PowerShellには組み込みのテストフレームワークがありませんが、Pester(人気のあるサードパーティモジュール)がテストの作成と実行に広く使用されています。PowerShell関数のテストにPesterを使い始める方法は次の通りです。

まず、まだPesterをインストールしていない場合は、インストールします:

Install-Module -Name Pester -Scope CurrentUser -Force

次に、テストしたい単純なPowerShell関数がMyFunction.ps1として保存されているとします:

function Get-MultipliedNumber {
    param (
        [int]$Number,
        [int]$Multiplier = 2
    )

    return $Number * $Multiplier
}

この関数をPesterでテストするには、MyFunction.Tests.ps1という名前のテストスクリプトを作成します。このスクリプトでは、PesterのDescribeItブロックを使ってテストケースを定義します:

# テストする関数をインポートする
. .\MyFunction.ps1

Describe "Get-MultipliedNumber tests" {
    It "倍率を提供しない場合、数値に2を乗算する" {
        $result = Get-MultipliedNumber -Number 3
        $result | Should -Be 6
    }

    It "指定された倍率で数値を正しく乗算する" {
        $result = Get-MultipliedNumber -Number 3 -Multiplier 3
        $result | Should -Be 9
    }
}

テストを実行するには、PowerShellを開き、テストスクリプトが含まれるディレクトリに移動し、Invoke-Pesterコマンドを使用します:

Invoke-Pester .\MyFunction.Tests.ps1

出力サンプルは次のようになり、テストが合格したか失敗したかを示します:

Starting discovery in 1 files.
Discovery finished in 152ms.
[+] C:\path\to\MyFunction.Tests.ps1 204ms (182ms|16ms)
Tests completed in 204ms
Tests Passed: 2, Failed: 0, Skipped: 0 NotRun: 0

この出力は、テストされたシナリオの下でGet-MultipliedNumber関数が期待通りに動作するという自信を与えてくれる、2つのテストが合格したことを示しています。