Opscode宣布Test Kitchen 0.7.0已经可用,支持按需使用OpenStack实例来测试Chef cookbook。
Test Kitchen作为一款工具软件,能够帮助Opscode Chef cookbook开发者在将cookbook应用到生产设施之前对其进行验证。Test Kitchen不仅支持在所测cookbook上运行一些基本的语法检查,还能供应虚拟机,并在供应的虚拟机内执行所测cookbook。在聚合虚拟机后,可以执行MiniTest来验证所测cookbook对虚拟机做了哪些修改。
Test Kitchen 0.7.0之前的版本,必须使用Vagrant结合VirtualBox来供应虚拟机。因为Vagrant需要在每台开发工作站和持续集成服务器上安装并维护,这对已经在使用OpenStack的用户来说是非常乏味的。最新版的Test Kitchen使用户不必管理单独的Vagrant环境。
为使用户从Vagrant迁移到已有的OpenStack配置,Test Kitchen 0.7.0引入了一种新的OpenStack runner,这种runner可以配置在cookbook的Kitchenfile内,在OpenStack虚拟机上,它能自动安装chef-client,并执行聚合和测试。
openstack do auth_url "http://openstack-auth-host.example.com:5000/v2.0/tokens" username "openstack-user-name" password "the-password-of-the-openstack-user" tenant "test-kitchen" end
除了新的OpenStack runner,Test Kitchen 0.7.0对于老版本的apt、yum、build-essential、git和rvm cookbook没有任何硬编码依赖。不同于在Cheffile中指定这些cookbook,初始化设置在自己的cookbook中进行。cookbook可以依赖上述cookbook而无需指定其版本。
Test Kitchen 0.7.0从2012年12月3日起就以Ruby Gem形式提供了。简单运行以下命令即可安装:
gem install test-kitchen
Test Kitchen的源代码可以在GitHub上获取。