我正在尝试编写 serverspec 测试,通过使用 chef、kitchen 和 vagrant 以及 debian jessie 框来检查食谱是否正在设置 mariadb-server。
食谱很简单:
# cookbooks/mariadb/recipes/server.rb
package 'mariadb-server' do
action :install
end
我写的规范是:
# cookbooks/mariadb/test/integration/default/serverspec/server_spec.rb
require 'spec_helper'
describe 'mariadb::server' do
context package('mariadb-server') do
it 'is installed' do
expect be_installed
end
end
end
但是,在运行时kitchen verify
,无论包状态如何,它总是返回 true。如果我 ssh 进入 vagrant box 并删除包,然后运行kitchen verify
,我也会得到一个积极的结果。
即使我将包更改为一些随机字符串,例如context package('this-is-not-a-package') do
测试结果为真。
我在这里做错了什么?