2015年5月10日日曜日

ServerSpecでテスト内容を共通化した雛形を作成してみた。

最近ServerSpecが面白くて、色々弄繰り回しています。

ServerSpecは、デフォルトだと1サーバごとにテストを書いていく構成になります。
これだと、サーバA、サーバBそれぞれにApacheのテストを書くとすると、同じものを2つコピペしないといけなく、なんとなく無駄です。

というわけで、公式にも書いてあるのですが、テストコードを機能ごとに共通化し、テストするサーバごとに使い回しが出来るようにした雛形を作成したので、このあたりに置いておきます。

ついでに、AmazonLinuxがRedhatと判定されると、AmazonLinuxのバージョンによって、Apacheのパッケージ名が違ったりする場合の条件分岐が辛かったので、ServerSpecの中にあるSpecInfraに手を入れて、AmazonLinuxの場合、Amazonと判定させかつ、バージョン番号を取得できるようにしました。
ただ、この修正は既存のテストコードに影響が出そうなので、プルリクするかどうかは悩み中・・・


*2015/05/12 追記
テストに引数を渡せることが分かったので、引数を渡すサンプルを追加。
これで、ポートやパッケージなどのテストを共通化できるようになった。

*2015/06/16 追記
AmazonLinux判定とバージョン取得のプルリクを投げてみたところ、本家にて再実装されました。
ServerSpecに手を入れなくてもテストコードをうごかせます。

0 件のコメント:

コメントを投稿