捗るのかどうかはゴメンなさい、知りません。取りあえず、ネコでごまかします。可愛すぎる。猫飼いたい。
我が家の大半が猫アレルギーで、嫁に至っては、人間以外の毛が生えている生物がいるだけでアレルギーなので、ハムスターすら飼えません。助けてください。魚も好きだけど、ハムスターも飼いたかったんです。「ハムスター飼う」って言ったら「二度と貴方には近寄らない」という過程の危機が待っていたので、ハムスターは東急ハンズで眺めるだけにしています。
nfs ディレクトリがマウントされてるかどうか
フツーに考えて、指定したディレクトリが nfs でマウントされているかどうかは次ので分かります。
1 2 3 | describe file('/home') do it { should be_mounted.with( :type => 'nfs' ) } end |
が、この nfs vers=2,3 と vers=4 で区別されると言うことに最近気がつきました(‘A`)
このケースだと、nfs vers=2,3 の場合のみです。vers=4 の時は次のようにしないとダメそうです。試してないけど、多分そうです。
1 2 3 | describe file('/home') do it { should be_mounted.with( :type => 'nfs4' ) } end |
この違いが分かった貴方は成長できます。
一通り、最後までテストを実行して欲しい
なにも考えずに、Jenkins で serverspec のテスト結果を ci_reporter なんかから引っかけてきている人や、ちまちま rake serverspec:hostname1 serverspec:hostname2 serverspec:hostname3 とホストを指定したり、rake spec で一気にやっている人など、十人十色と思いますが、エラーが発生すると対象のホストまで実行して終了です。一つ一つホストを指定してやっているときはいいんですけど、対象のホストを全部テストして欲しいなー、なんて時もあろうかと思います。んで、そのうち何件エラーがあるの? ん? みたいな感じに。
それにはこれですババーン
Serverspecで複数ホストのテストをする時、途中でfailしても、最後までspecを実行させる。 – Qiita
まんまですね、Serverspec の Rakefile を次のように 1行追加してあげます。remark してるから 2行追加してるけど。
1 2 3 4 5 6 7 8 9 10 11 12 13 | namespace :serverspec do task :all => properties.keys.map {|key| 'serverspec:' + key.split('.')[0] } properties.keys.each do |key| desc "Run serverspec to #{key}" RSpec::Core::RakeTask.new(key.split('.')[0].to_sym) do |t| ENV['TARGET_HOST'] = key t.pattern = 'spec/{' + properties[key][:roles].join(',') + '}/*_spec.rb' # 途中でfailしてもspec実行を続ける t.fail_on_error = false end end end |
どこよ!!! って言う人にはこちらを差し上げます。
そうですね
1 | t.fail_on_error = false |
を追加すれば良いだけです。こうすることで
こんな風に、途中で Serverspec でエラーが発生してしまったがために、実行件数自体が激減して、「結局いくつエラーが発生したんだい!!!」みたいな事例を避けることができます。
その代わり、エラー発生しまくったら切ないことになるコトまちがいないです。がんばれ。
chef テストが捗る 2つの tips