Blog

PowerShell のユニットテスト(Pester)の使い方

はじめに

Windows 運用しているとPowersShellでスクリプトを書くことがあります。
スクリプトを書くなら、ユニットテストは自動化したいですよね?
そこで、PowerShellの標準モジュールであるPesterについて紹介します。

現在Pesterはv5 が最新バージョンですが、古いPowersShell(5.x.x系など)はv3がインストールされています。
構文や使える機能が若干異なるので、利用する前に必ず確認しましょう。

Pesterについて

公式ドキュメントは以下を参照してください。

ちなみにPesterは「しつこくせがむ」「うるさくせがむ」みたいなニュアンスらしいです。
「全てがgreenになるまで根気強くテストせよ」みたいな意味なんですかね。

Pesterの使い方

pesterのバージョン確認のコマンドは以下の通りです。
今回は5系を使用します。

ディレクトリ構成は以下の通りです。

テスト実行時は以下のようにします。

各ファイルの中身は以下の通りです。

・Functions.ps1

・Functions.Tests.ps1

テスト定義については、書き方の構文が決まっています。

テスト結果を取得するshoudについてはバージョンによって構文が異なります。
公式ドキュメントを確認して、適切な値で書いてください。

実行するときはInvoke-Pesterコマンドを使います。

試しに失敗するテストを書いてみます。
Functions.Tests.ps1を以下の通り修正します。

実行してみます。

2個目のテストが失敗していることがわかりますね。
コードブロックだとわかりにくいですが、実際のpowershellはcolor表示してくれるのでだいぶ見やすくなっています。

おわりに

今回はpowershellの標準モジュールであるPesterの使い方について紹介しました。
ユニットテストを実施する時にぜひ使ってみてください。

ニフティでは、
さまざまなプロダクトへ挑戦する
エンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトより
お気軽にご連絡ください!

ニフティに興味をお持ちの方は
キャリア登録をぜひお願いいたします!

connpassでニフティグループに
参加いただくと
イベントの
お知らせが届きます!