在测试厨房中,有没有办法更新创建的实例,而不是每次都要销毁和重新创建实例?假如我在kitchen.yml中更改并希望看到该更改,则运行整个destroy / create可能需要一段时间。
答案 0 :(得分:6)
取决于您使用的提供商 - 是。
首先,有一些生命周期步骤:
kitchen create
- 这将创建实例。它相当于vagrant up --no-provision
。kitchen converge
- 这将收集(提供)实例。它相当于vagrant provision
。kitchen verify
- 这将运行任何集成后测试(如ServerSpec或bats)。流浪者中没有相应的东西。kitchen test
- 将上述三个命令包装在一个序列中。 Test Kitchen没有vagrant reload
的概念,这就是你的例子所描述的内容。但是,您可以通过执行以下操作来完成重新加载:
cd .kitchen/suite_name && vagrant reload
从命令行。
答案 1 :(得分:0)
如果您使用的是Vagrant,请尝试命令vagrant global-status
以获取计算机ID,然后使用它重新加载。
像这样:
$ vagrant global-status
42c66e1c default virtualbox poweroff /path/to/your/machine/kitchen-vagrant/webserver-ubuntu-1404
1c135a2e default virtualbox running /path/to/other/machine/.kitchen/kitchen-vagrant/kitchen-machines-webserver-ubuntu-1404
$ vagrant reload 1c135ae --provision
答案 2 :(得分:0)
正如sethvargo指出的那样,即使您的实例已经收敛,也可以使用kitchen create
,并且可以通过对.kitchen.yml文件进行更改来重新创建Vagrantfile。
然后你可以:
cd .kitchen/suite_name && vagrant reload
你的流浪者实例会反映这些变化。
但请注意,在某些情况下,当您重新加载实例时,ssh端口号可能会发生变化。在这种情况下,您可以使用vagrant port
查看更改并使用这些更改修复.kitchen / name-of-instance.yml文件,以便kitchen login
可以没有问题。