

# 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.Code language: PHP (php)

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 Code language: PHP (php)
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services โ all in one place.
Explore Hospitals