Test Kitchen is an integration tool for developing and testing infrastructure code and software on isolated target platforms.
Ruby Cucumber Other
Latest commit c1e9dc5 Jul 27, 2016 @cheeseplus cheeseplus committed on GitHub Merge pull request #1088 from coderanger/nocane
Remove cane in favor of RuboCop/finstyle.
Failed to load latest commit information.
.github updated template text with some copy-paste targets and moved to .github Mar 4, 2016
bin One of those tiny String tweak deals (style). Jul 20, 2014
features Updating example versions Mar 11, 2016
lib Merge pull request #1076 from test-kitchen/diagnose_test_base_path Jul 25, 2016
spec Also copy over $CI if present to allow for CI-specific behaviors. Jul 19, 2016
support Merge pull request #864 from dissonanz/dissonanz/windows-omnibus Jan 13, 2016
templates Updating example versions Mar 12, 2016
test use a less volitile test cookbook for integration ci Jul 5, 2016
.gitattributes Adding gitattributes file for managing line ending conversions Apr 2, 2016
.gitignore Don't require dev dependencies to build Apr 7, 2016
.kitchen.ci.yml use a less volitile test cookbook for integration ci Jul 5, 2016
.kitchen.proxy.yml run integration tests on travis and appveyor and move off EC2 Mar 29, 2016
.rubocop.yml Add Finstyle (driven by RuboCop) to maintain style/linting direction. Jul 21, 2014
.travis.yml run integration tests on travis and appveyor and move off EC2 Mar 30, 2016
.yardopts Add yard documentation. Dec 1, 2012
Berksfile use a less volitile test cookbook for integration ci Jul 5, 2016
CHANGELOG.md bumping version for a gem repackage Jun 23, 2016
CONTRIBUTING.md Update release process to use github changelog generator Feb 26, 2016
ECOSYSTEM.md missed portertech May 10, 2016
Gemfile run integration tests on travis and appveyor and move off EC2 Mar 30, 2016
Gemfile.proxy_tests run integration tests on travis and appveyor and move off EC2 Mar 30, 2016
Guardfile Add source encoding comments to Gemfile & Guardfile. Nov 6, 2014
LICENSE Jamie: A Chef Convergence Integration Test Harness. Dec 1, 2012
MAINTAINERS.md adding myself as a maintainer Jun 2, 2016
README.md Initial commit of the ECOSYSTEM doc. Apr 20, 2016
Rakefile Even here, RuboCop haunts me. Jul 26, 2016
appveyor.yml Pin "overcommit" as 0.34.0 breaks on Windows installs Jun 16, 2016
test-kitchen.gemspec Remove cane in favor of RuboCop/finstyle. Jul 26, 2016
testing_windows.md provide the option to run all winrm commands through a scheduled task Apr 20, 2016

README.md

Test Kitchen

Gem Version Build Status Code Climate Test Coverage Dependency Status Inline docs

Website http://kitchen.ci
Source Code http://kitchen.ci/docs/getting-started/
IRC #kitchenci channel on Freenode, transcript thanks to BotBot.me
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

Usage

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 see the Documentation. This is a change since version 1.7.0

Documentation

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

Versioning

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 ECOSYSTEM.md.

Development

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

Authors

Created and maintained by Fletcher Nichol (fnichol@nichol.ca) and a growing community of contributors.

License

Apache License, Version 2.0 (see LICENSE)