1.はじめに
今回はPowerShellにおけるPesterの使い方を勉強する。
PesterはPowershellのテスト用フレームワークであり、Ansibleで実際にテストを実行するスクリプトとして扱え、出力形式が優秀なため、容易にテストレポート報告書に変換できる。
psファイルを実行する準備として以下のコマンドを実行しておく
>Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
2.Pesterの使い方
①作業フォルダに移動する
②テストファイルと関数ファイルを作成する
(「GetPC」は作成したいファイル名に変換)
>New-Fixture -Name GetPC
③作業フォルダ内に二つのファイルが作成されたのを確認する

④GetPC.Tests.ps1ファイルの中身は以下の通りである(コマンドを関数ファイルに書いてテストファイルで呼び出しても良いが、直接テストファイルにコマンドを書いても良い)

⑤Describeブロックにテスト項目(一テスト項目に対して一Itブロック)を記述していく。今回はドメイン名のテストを実装してみる。

⑥作業フォルダに移動して、テストを実行する
>Invoke-Pester -Path .\GetPC.tests.ps1
⑦テスト結果の確認

⑧値が決まってるドメイン名などを設定ファイルに外出しする。そうすることでメインスクリプトを修正する頻度を減らせる。(今回はJSON形式のファイルに記述してみる)
Commoninfo.json

⑨設定ファイルを読み込む処理とその中の変数を使うようにテストファイルを書き換える

⑩再び作業フォルダに移動し、テストを実行してみる(私の環境が異なるので画像を修正)

3.フォルダ構成
テスト項目にも共通で実施する項目、特定の対象にしか実施しない項目が存在する。そのような場合を踏まえて、以下のような構成で各テストファイルに分けて記述すると良い

commonのテストファイル:共通で実施するテスト項目、メインとなるテストファイル
hostのテストファイル:ホストごとで必ず異なるテスト項目(ホスト名、IPアドレスなど)
roleのテストファイル:ホストごとで用途の違いがある場合のテスト項目(インターネット用とプライベート用など)ファイルを置く
4.さいごに
今回は、PowerShellにおけるPesterの使い方を勉強した。3のフォルダに分けた後も確認する項目ごとに細かくテストファイルを分けて良いと思う。分かりやすく簡潔なテストを目指していきたい。

Comments