LoginSignup
5

More than 5 years have passed since last update.

Serverspecのメモ・疑問点

Last updated at Posted at 2014-03-29

最近ChefとServerspecを始めたので、備忘録としてメモを記載。Rubyも初心者です。

解決済み

実行時の警告

describe file("/etc/yum.repos.d/epel.repo") do
  its(:content) { should match /enabled=1/ }
end

など、ファイルの中身を検証しようとすると

.CommandResult#[] is obsolete. Use accessors instead. in C:/Users/hogehoge/.vagrant.d/gems/gems/serverspec-0.12.0/lib/serverspec/type/file.rb:80:in `content'.

と警告が表示される。

(2014/03/30 追記)
serverspecのバージョンが0.12.0と古かったことが原因でした。
Vagrantのプラグインvagrant-serverspec(0.0.1)をインストールした際に一緒にインストールされるserverspecが古かったようです。
ご指摘ありがとうございました。

packageの提供しているbe_installed.byの種類

 serverspecというよりもspecinfraの話ですが、be_installed.byに指定できる引数の種類についてメモ。
 specinfra-1.0.1で確認。

  • gem
  • npm
  • pecl
  • pear
  • pip
  • cpan

 be_installed.by('bundle')とか書いても動きませんよ。(自戒)

悩み

ChefSpecとServerspec

ChefSpecを単体テスト、Serverspecを結合テストと捉えると、両方記載しないといけないんだろうけど、
Vagrantで仮想マシンを立ててchef_solo流してServerspec流して...、とやっていると、
ChefSpecServerspecで記載内容がかなり被るのもあり、ChefSpecを記載するのが億劫。というかほとんどServerspecしか書いていません、すみません。

単体テスト用のVagrantfileと結合テスト用のVagrantfileを用意して、

・単体テスト
Vagrantから1つのレシピとそれに対応するServerspecのみ実行。

・結合テスト
Vagrantから複数のレシピを組合せて実行し、Serverspecでテストする。テストコードは単体テスト用のServerspecを使いまわしつつ、結合独自のテスト観点を追加する。

みたいな開発でもいいんかなあ。

いちいち仮想マシンを起動してテストすると遅いから、CIすることを考えるとChefSpecは必要ってことなのかな?

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5