# kitchen init --create-gemfile
Run the kitchen init --create-gemfile command in your newly created kitchen directory. The kitchen init command generates all the config files needed to add Test Kitchen support to a project. We need to use the --create-gemfile option, because if we don’t, Test Kitchen will immediately try to run gem install as a user instead of as an admin. This fails on some platforms because the Chef Development Kit installation doesn’t always make its gem directory user-writeable:
$ kitchen init --create-gemfile
create .kitchen.yml
create test/integration/default
create Gemfile
append Gemfile
append Gemfile
You must run `bundle install' to fetch any new gems.
# bundle install
The bundle install command referenced in the preceding command line output refers to the Bundler tool. Bundler is a tool that downloads and manages Ruby gems. Test Kitchen needs you to run bundle install to download and install the kitchenvagrant driver and some supporting gems.
$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using mixlib-shellout (1.4.0)
Using net-ssh (2.9.1)
Using net-scp (1.2.1)
Using safe_yaml (1.0.3)
Using thor (0.19.1)
Using test-kitchen (1.2.1)
Using kitchen-vagrant (0.15.0)
Using bundler (1.5.2)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
kitchen.yml
Used to configure virtual environments for Test Kitchen
Gemfile
Bundler uses this file to configure the gem repository and the list of gems to down‐load. Bundler will automatically determine a gem’s dependencies by its references to other gems, so you need only list the top level gems you require.
Gemfile.lock
Records all the versions of the gems Bundler downloaded for the current project, plus the versions of all dependencies. This file can be used by another Chef devel‐oper to reproduce your current gem environment using bundle install.
.kitchen/
Hidden directory that Test Kitchen uses to store persistent data it needs to function properly.
.kitchen/logs/kitchen.log
Text file that contains the output from the last run of Test Kitchen.
test/
Directory structure that contains tests (initially just a skeleton structure with the subdirectory tree test/integration/default/).
Running the Commands in Sequence
# Kitchen List
$ kitchen list
# Kitchen Create
$ kitchen create
# Kitchen Converge
$ kitchen converge
# Testing Setup - Kitchen login is used to test if the testing VM is provisioned correctly.
$ kitchen login
# Finally Exit
$ exit
# Destroying Setup
$ Kitchen destroy
- Best AI tools for Software Engineers - November 4, 2024
- Installing Jupyter: Get up and running on your computer - November 2, 2024
- An Introduction of SymOps by SymOps.com - October 30, 2024