スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

serverspecで、itamaeのNode Attributesを使うようにする。

itamaeで構築した環境のテストを
serverspecで書く時に、itamaeのNode Attributesを使うようにするためのメモ。

jsonファイルがこんな感じにしてたとき。
development.json
{
"env": "development"
}


set_propertyを使う方法(itamaeじゃなくても使える)



spec_helper.rbに下記のように変更する。
変更前
require 'serverspec'

set :backend, :exec
変更後
require 'serverspec'
require 'json'

set :backend, :exec

attr_file = "#{Dir.pwd}/nodes/#{ENV["SPEC_ENV"]}.json"
exit(0) unless File.exist?(attr_file)
RSpec.configure do |c|
set_property JSON.parse(File.read(attr_file))
end

実際のテストで使う時。
sample_spec.rb
if property["env"]=="development" then
describe package("mariadb") do
it { should be_installed }
end
end


テストを実行する時
bundle exec rake spec SPEC_ENV=development



Itamae::Nodeを使う方法(itamaeならこっちのが良い)



spec_helper.rbに下記のように変更する。変更後
require 'serverspec'
require 'json'
require "itamae/node"

set :backend, :exec

def node
return @node if @node
hash = YAML.load_file("#{Dir.pwd}/nodes/#{ENV["SPEC_ENV"]}.json")
@node = Itamae::Node.new(hash, Specinfra.backend)
end

実際のテストで使う時。
sample_spec.rb
if node[:env]=="development" then
describe package("mariadb") do
it { should be_installed }
end
end


テストを実行する時
bundle exec rake spec SPEC_ENV=development



参考サイト
Serverspecでchefのjsonを読み込む
Serverspecでサーバ情報をファイルに保存してテストする方法
itamae実践Tips
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。