Skip to content
Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.
Ruby Gherkin Other
Branch: master
Clone or download
tas50 Merge pull request #1598 from test-kitchen/kitchen
Use "Test Kitchen" not "Kitchen" when running the command
Latest commit 3b1d8dd Oct 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github add lockbot config Aug 6, 2018
bin Fix ChefStyle offenses Dec 9, 2016
docs Use "Test Kitchen" not "Kitchen" when running the command Oct 16, 2019
features Use "Test Kitchen" not "Kitchen" when running the command Oct 16, 2019
lib Use "Test Kitchen" not "Kitchen" when running the command Oct 16, 2019
support separate out os jobs and fix KITCHEN_YAML environment variable settin… Jul 17, 2019
templates Merge pull request #1524 from test-kitchen/plugin_init Feb 26, 2019
test use a less volitile test cookbook for integration ci Jul 5, 2016
.gitattributes ensure lf line endings Jul 10, 2019
.gitignore First pass at Hugoification Sep 19, 2018
.rubocop.yml appease Rubocop: update namespace for FileName Mar 6, 2018
.yardopts Add yard documentation. Dec 2, 2012
Berksfile Fix ChefStyle offenses Dec 9, 2016 Release 2.3.3 Sep 18, 2019 Update release process to use github changelog generator Feb 26, 2016 EOL space Oct 13, 2017
Gemfile Update github_changelog_generator requirement from 1.11.3 to 1.14.3 Sep 17, 2019
Gemfile.proxy_tests run integration tests on travis and appveyor and move off EC2 Mar 30, 2016
Guardfile Fix ChefStyle offenses Dec 9, 2016
LICENSE Jamie: A Chef Convergence Integration Test Harness. Dec 1, 2012 LT Tyler Ball Nov 16, 2018 Remove the slack archive link from the readme Sep 5, 2019 Release Test Kitchen 2.2.0 Apr 26, 2019
Rakefile Chefstyle updates Jul 10, 2019
azure-pipelines.yml loosen the version specs on Mac and Linux as well Sep 18, 2019
kitchen.appveyor.yml Accept the license in the appveyor kitchen config May 17, 2019
kitchen.dokken.yml Rename the kitchen files to not be hidden Feb 25, 2019
kitchen.proxy.yml make environment uppercase as Azure DevOps upcases environment variab… Jul 10, 2019
test-kitchen.gemspec Update our dev dep on cucumber to allow 3.x Sep 18, 2019 provide the option to run all winrm commands through a scheduled task Apr 21, 2016

Test Kitchen

Gem Version Build Status

Source Code
Slack #test-kitchen channel on Chef Community Slack
Twitter @kitchenci

Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.

Getting Started Guide

To learn how to install and setup Test Kitchen for developing infrastructure code, check out the Getting Started Guide.

If you want to get going super fast, then try the Quick Start next...

Quick Start

Test Kitchen is a RubyGem and can be installed with:

$ gem install test-kitchen

If you use Bundler, you can add gem "test-kitchen" to your Gemfile and make sure to run bundle install.

Next add support to your library, Chef cookbook, or empty project with kitchen init:

$ kitchen init

A .kitchen.yml will be created in your project base directory. This file describes your testing configuration; what you want to test and on which target platforms. Each of these suite and platform combinations are called instances. By default your instances will be converged with Chef Solo and run in Vagrant virtual machines.

Get a listing of your instances with:

$ kitchen list

Run Chef on an instance, in this case default-ubuntu-1204, with:

$ kitchen converge default-ubuntu-1204

Destroy all instances with:

$ kitchen destroy

You can clone a Chef cookbook project that contains Test Kitchen support and run through all the instances in serial by running:

$ kitchen test


There is help included with the kitchen help subcommand which will list all subcommands and their usage:

$ kitchen help test

More verbose logging for test-kitchen can be specified when running test-kitchen from the command line using:

$ kitchen test -l debug

For the provisioner (e.g. chef-solo or chef-zero) add a log_level item to the provisioner section of the .kitchen.yml For more information on setting log_level see the configuration documentation.


Documentation is being added on the Test Kitchen website. Please read and contribute to improve them!


Test Kitchen aims to adhere to Semantic Versioning 2.0.0.

Community and Ecosystem

If you would like to see a few of the plugins or ecosystem helpers, please look at


Pull requests are very welcome! Make sure your patches are well tested. Ideally create a topic branch for every separate change you make. For example:

  1. Fork the repo
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request


Created and maintained by Fletcher Nichol ( and a growing community of contributors.


Apache License, Version 2.0 (see LICENSE)

You can’t perform that action at this time.