4

クックブックで次のテンプレート ファイルを作成しました。

template "my_file" do
  path "my_path"
  source "my_file.erb"
  owner "root"
  group "root"
  mode "0644"
  variables(@template_variables)
  notifies :restart, resources(service: "my_service")
end

私のChefSpecテストでの次のアサーション:

  chef_run.should create_file "my_file"
  chef_run.file("my_file").should be_owned_by('root', 'root')

その結果、次のエラーが発生します。

  No file resource named 'my_file' with action :create found.

これは、リソースではなくfileリソースを使用しているtemplateためです。質問: ChefSpec を使用してテンプレート リソースからのファイル作成をテストするにはどうすればよいですか?

4

2 に答える 2

5

ドキュメント ( https://github.com/acrmp/chefspec )によると、以下を使用できるはずです。

expect(chef_run).to create_file 'my_file'

ごく最近何かが変更されたと思いますが (おそらく ruby​​gems のchefspec のバージョン)、今日以前に合格したテスト (あなたが使用しているのと同じ構文を使用) が突然失敗したためです。

于 2013-08-27T04:26:28.070 に答える