概要
- 前回は attribute でホスト固有の情報を別に持てるようになった
- spec ファイルの共有は出来ないか考えてみた
内容
バージョンアップ
タイムラインを見ていたら @gosukenator さんが直接呟かれていたので、さっそくバージョンアップした。
Just released #serverspec v0.6.0.Obsoleted syntaxes were removed completely.And also removed Backend::Puppet.
— Gosuke Miyashita (@gosukenator) 2013, 6月 13
gem
について(も)よく理解していないが、普通に gem install serverspec
でバージョンアップが出来た。
spec ファイルの共有手段の検討
こちらに記載されている通りに行う前に自分なりに考えた方法として以下のようなディレクトリ構成で設定してみた。
% tree . ├── Rakefile ├── attributes.yml └── spec ├── app │ └── app_spec.rb ├── base │ └── default_spec.rb ├── host1 │ ├── app_spec.rb -> ../app/app_spec.rb │ └── default_spec.rb -> ../base/default_spec.rb ├── host2 │ ├── app_spec.rb -> ../app/app_spec.rb │ └── default_spec.rb -> ../base/default_spec.rb └── spec_helper.rb
邪道かもしれないが、上記のように spec
ディレクトリにそれぞれ基本となるディレクトリ(app
と base
)を作成し、その直下に app_spec.rb
と default_spec.rb
を設置し、それぞれをホストディレクトリ(host1
と host2
)にリンクを設定する。
spec ファイル
app_spec.rb
は以下のようにアプリケーションサービスのポート及び設定ファイル内の設定(ホスト固有の情報)についてテストを行えるように書いた。(実際はもちょっとちゃんと書いてるけど...)
default_spec.rb
は前回と同様に /etc/hosts
や /etc/hostname
等のガチなホスト固有情報をテスト出来るように書いた。
attributes.yml
にはホスト固有の情報(ホスト名と IP アドレス)を設定した。
テスト
うまくテストが通るか半信半疑ながら、以下のようにテストを実行したところテストは正常に終了した。
ASK_SUDO_PASSWORD=1 rspec spec/host1 spec/host2
まとめ
- 前述の通り、完全に邪道かもしれないが、シンボリックリンクによるホスト間の spec ファイルの共有が出来た
describe file
で指定される部分が attribute で指定出来ないか試行錯誤したが、こちらは現時点では設定することが出来なかった(そもそも出来ないのかな...)- 次回は正統派を試してみたい...