PowerShell: Pesterのインストール手順
はじめに
この記事では、BDDスタイルのテストフレームワークである「Pester
」を導入する方法を紹介します。
PowerShellスクリプト開発において、ユニットテスト[1]を活用することで、品質の高いスクリプトを開発できます。
以下では、Pester を導入する手順を説明します。
BDDとTDDについて
TDD (テスト駆動開発)
TDD(テスト駆動開発)[2]は、コードの品質を高めるためにユニットテストを使う開発手法です。目的のコードを書く前にテストを作成することで、テストしやすいコードを作成できます。
BDD (振る舞い駆動開発)
BDD(振る舞い駆動開発)[3]は、コードの振る舞いに重点をおいてユニットテストを行なう手法です。
Pesterとは
Pester は、PowerShellスクリプト用のユニットテストを記述するためのフレームワークで、
以下の 3つのコマンドレットを使用することで、BDDスタイルのテストスイートを作成できます。
- Describe
- Context
- It
Pesterの主要なコマンドレット
Pester にはいくつかのコマンドレットが用意されています。以下は、よく使われるコマンドレットの一部を紹介します。
コマンドレット | 意味 | 使用例 |
---|---|---|
New-Fixture | ユニットテストのひな形の作成 | New-Fixture -Name sampleFunc1 |
Invoke-Pester | ユニットテストの実行 | Invoke-Pester |
Describe | ユニットテストのグループ化 | Describe <スクリプト名> { <テストケース> } |
Context | ユニットテストのサブグループ化 | Context <コンテキスト> { <テストケース> } |
It | テストケースの定義 | It "<テストの説明>" { <テスト> } |
Should | テスト結果のアサーション |
<テストするコード> | Should -BeTrue |
ユニットテストの例は、以下のとおりです。
Describe `<スクリプト名>` {
Context `<コンテキスト>` {
It `<テスト名>` {
`<テストするコード>`| Should -Be `<期待した返り値>`
}
}
}
各コマンドレットの詳しい説明は、公式サイトを参照してください。
Pesterの基本的な使い方
Pester の基本的な使い方は、以下の通りです。
-
New-Fixture
を使い、テストのひな形を作成 -
Describe
,Context
,It
を使って、テストコードを実装 -
Invoke-Pester
を使って、テストを実行 -
作成したユニットテストをパスするように、目的のコードを実装
-
すべての機能の実装が終わるまで、2-4. を繰り返す
詳細な使い方については、Pesterの公式サイトを参照してください。
Pesterのインストール手順
以下では、最新の Pester v5 をインストールする手順を解説します。
1. 組み込み済みPesterの削除
以下の手順で、組み込み済みの旧 Pester を削除します。
(管理者権限でPowerShellを実行する必要があります)。
- 以下のコマンドを実行し、Pester の各ファイルの登録を外す
$module = "C:\Program Files\WindowsPowerShell\Modules\Pester"
takeown /F $module /A /R
icacls $module /reset
icacls $module /grant "*S-1-5-32-544:F" /inheritance:d /T
- 以下のコマンドを実行し、Pester の各ファイルを削除する
Remove-Item -Path $module -Recurse -Force -Confirm:$false
以上で、旧 Pester の削除は終了です。
2. 最新のPesterのインストール
以下の手順で、Pester をインストールします。
管理者権限、またはユーザー権限で以下のコマンドを使用し、PowerShell Galleryから Pester をインストールします。
Install-Module Pester -Force -SkipPublisherCheck
3. Pesterのバージョンチェック
インストール後、Pester のバージョンを確認します。
以下のコマンドで、バージョンを確認します。
Get-Module -ListAvailable -Name Pester
正しくインストールされていれば、以下のように表示されます。
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version PreRelease Name PSEdition ExportedCommands
---------- ------- ---------- ---- --------- ----------------
Script 5.4.1 Pester Desk {Invoke-Pester, Describe, Context, It…}
おわりに
PowerShellスクリプト開発用の BDDスタイルのテストフレームワーク「Pester
」のインストール方法を解説しました。
Pester を活用することで、ユニットテストを用いて高品質なスクリプト開発が可能になります。
PowerShell開発において Pester を活用しましょう。
Discussion