ServerspecでWindowsをテストしてみます

こんにちは!beardです!

今回は、ServerspecでWindowsServer2008R2のテストをしてみます。
ServerspecでWindowsをテストするときはwinrmという機能を使います。
ざっくりと紹介しますと、Windowsをリモート制御できるプロトコルになります。

1. テストするWindows環境の準備
まずEC2でWindowsServer2008R2 BaseのAMIを選び起動させます。2008R2のEC2ではwinrmはデフォルトで起動しています。Serverspecでテストするためには二つ、winrmの設定を変更します。コマンドプロンプトで以下の二つを実行します。

実行したところ

win2008basic

win2008unencrypt

2. Serverspec側の準備
Windowsなので新規にディレクトリを作ってserverspec-initをするのがお勧めです。

spec/spec_helper.rbの内容をテスト対象のサーバに対応させます。

spec/spec_helper.rbの内容

spec/localhost/httpd_spec.rbがデフォルトで生成されますが、こちらはLinux用のものができてしまうので以下のように書き換えます。
今回は、基本操作をするだけなのでテスト内容はc:/windowsのフォルダがあることだけをテストします。
spec/localhost/httpd_spec.rbの内容

3. 実行します

1 example, 0 failuresと表示されれば成功です。
いかがでしたか。
数値だけを変数として扱うことで、コードを変更せずにスペックの違いをテストすることができます。

いかがでしたでしたか。
次回もお楽しみに!!