我的配方中有以下代码,它运行返回用户的bash脚本(root除外)。每行1个用户。
ruby_block "Delete users" do
action :run
block do
users = Mixlib::ShellOut.new("whatever command with lines containing users").run_command.stdout
users.each_line do |user|
ex = Chef::Resource::Execute.new("Removing User: #{user}", run_context)
ex.command "remove user"
ex.run_action(:run)
end
end
end
现在我设法模仿shell Here,但我无法弄清楚为什么以及是否有可能期望这些资源。例如,如果命令返回
user1
user2
然后以下工作
allow(shellout).to receive("whatever command with lines containing users").and_return("user1")
expect(chef_run).to run_ruby_block('Delete users')
但如果我添加以下
expect(chef_run).to run_execute('Removing User: user1')
它会失败,而我无法涵盖的任何资源都没有。 (我正在使用Chef :: Coverage所以我知道)。 感谢