2016-08-03 34 views
0

在Ruby中,*用於表示文件的名稱。Chef中的文件名InSpec

例如,/home/user/*.rb將返回所有以.rb結尾的文件。我想在廚師InSpec中做類似的事情。

例如:

describe file ('home/user/*') do 
    it {should_not exist } 
end 

應該給我的所有文件內/home/user目錄並確認是否有文件在這個目錄裏面存在。換句話說,我想檢查這個目錄是否爲空,或者不在Chef中。

我該怎麼做?

回答

0

*對於globs大多是一個shell功能,正如您所期望的file資源不支持它們。改爲使用command資源:

describe command('ls /home/user') do 
    its(:stdout) { is_expected.to eq "\n" } 
end 
+0

謝謝@coderanger。解決了一個大問題! – saurg

+0

你也可以告訴我關於這個語法'its(:stdout){is_expected.to eq「\ n」}'。它不是廚師InSpec,什麼是資源'is_expected'? – saurg

+0

這是來自RSpec本身和'rspec-its' gem的語法組合。它們都不是特定於InSpec的。相當於'it {expect(subject.stdout).to eq「\ n」}'只需要少一點的輸入,並且可以更容易閱讀。 – coderanger

相關問題