test-kitchen 1.7.0 → 1.7.1.dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/.cane +8 -8
  3. data/.gitattributes +3 -0
  4. data/.github/ISSUE_TEMPLATE.md +55 -55
  5. data/.gitignore +28 -28
  6. data/.kitchen.ci.yml +23 -23
  7. data/.kitchen.proxy.yml +27 -27
  8. data/.rubocop.yml +3 -3
  9. data/.travis.yml +70 -70
  10. data/.yardopts +3 -3
  11. data/Berksfile +3 -3
  12. data/CHANGELOG.md +1090 -1083
  13. data/CONTRIBUTING.md +14 -14
  14. data/Gemfile +19 -19
  15. data/Gemfile.proxy_tests +4 -4
  16. data/Guardfile +42 -42
  17. data/LICENSE +15 -15
  18. data/MAINTAINERS.md +23 -23
  19. data/README.md +135 -135
  20. data/Rakefile +61 -61
  21. data/appveyor.yml +44 -44
  22. data/features/kitchen_action_commands.feature +164 -164
  23. data/features/kitchen_command.feature +16 -16
  24. data/features/kitchen_console_command.feature +34 -34
  25. data/features/kitchen_defaults.feature +38 -38
  26. data/features/kitchen_diagnose_command.feature +96 -96
  27. data/features/kitchen_driver_create_command.feature +64 -64
  28. data/features/kitchen_driver_discover_command.feature +25 -25
  29. data/features/kitchen_help_command.feature +16 -16
  30. data/features/kitchen_init_command.feature +274 -274
  31. data/features/kitchen_list_command.feature +104 -104
  32. data/features/kitchen_login_command.feature +62 -62
  33. data/features/kitchen_sink_command.feature +30 -30
  34. data/features/kitchen_test_command.feature +88 -88
  35. data/features/step_definitions/gem_steps.rb +36 -36
  36. data/features/step_definitions/git_steps.rb +5 -5
  37. data/features/step_definitions/output_steps.rb +5 -5
  38. data/features/support/env.rb +75 -75
  39. data/lib/kitchen.rb +150 -150
  40. data/lib/kitchen/base64_stream.rb +55 -55
  41. data/lib/kitchen/cli.rb +419 -419
  42. data/lib/kitchen/collection.rb +55 -55
  43. data/lib/kitchen/color.rb +65 -65
  44. data/lib/kitchen/command.rb +185 -185
  45. data/lib/kitchen/command/action.rb +45 -45
  46. data/lib/kitchen/command/console.rb +58 -58
  47. data/lib/kitchen/command/diagnose.rb +92 -92
  48. data/lib/kitchen/command/driver_discover.rb +105 -105
  49. data/lib/kitchen/command/exec.rb +41 -41
  50. data/lib/kitchen/command/list.rb +119 -119
  51. data/lib/kitchen/command/login.rb +43 -43
  52. data/lib/kitchen/command/sink.rb +54 -54
  53. data/lib/kitchen/command/test.rb +51 -51
  54. data/lib/kitchen/config.rb +322 -322
  55. data/lib/kitchen/configurable.rb +529 -529
  56. data/lib/kitchen/data_munger.rb +959 -959
  57. data/lib/kitchen/diagnostic.rb +141 -141
  58. data/lib/kitchen/driver.rb +56 -56
  59. data/lib/kitchen/driver/base.rb +134 -134
  60. data/lib/kitchen/driver/dummy.rb +108 -108
  61. data/lib/kitchen/driver/proxy.rb +72 -72
  62. data/lib/kitchen/driver/ssh_base.rb +357 -357
  63. data/lib/kitchen/errors.rb +229 -229
  64. data/lib/kitchen/generator/driver_create.rb +177 -177
  65. data/lib/kitchen/generator/init.rb +296 -296
  66. data/lib/kitchen/instance.rb +662 -662
  67. data/lib/kitchen/lazy_hash.rb +142 -142
  68. data/lib/kitchen/loader/yaml.rb +349 -349
  69. data/lib/kitchen/logger.rb +423 -423
  70. data/lib/kitchen/logging.rb +56 -56
  71. data/lib/kitchen/login_command.rb +52 -52
  72. data/lib/kitchen/metadata_chopper.rb +52 -52
  73. data/lib/kitchen/platform.rb +67 -67
  74. data/lib/kitchen/provisioner.rb +54 -54
  75. data/lib/kitchen/provisioner/base.rb +236 -236
  76. data/lib/kitchen/provisioner/chef/berkshelf.rb +114 -114
  77. data/lib/kitchen/provisioner/chef/common_sandbox.rb +322 -322
  78. data/lib/kitchen/provisioner/chef/librarian.rb +112 -112
  79. data/lib/kitchen/provisioner/chef_apply.rb +124 -124
  80. data/lib/kitchen/provisioner/chef_base.rb +341 -341
  81. data/lib/kitchen/provisioner/chef_solo.rb +88 -88
  82. data/lib/kitchen/provisioner/chef_zero.rb +245 -245
  83. data/lib/kitchen/provisioner/dummy.rb +79 -79
  84. data/lib/kitchen/provisioner/shell.rb +138 -138
  85. data/lib/kitchen/rake_tasks.rb +63 -63
  86. data/lib/kitchen/shell_out.rb +93 -93
  87. data/lib/kitchen/ssh.rb +276 -276
  88. data/lib/kitchen/state_file.rb +120 -120
  89. data/lib/kitchen/suite.rb +51 -51
  90. data/lib/kitchen/thor_tasks.rb +66 -66
  91. data/lib/kitchen/transport.rb +54 -54
  92. data/lib/kitchen/transport/base.rb +176 -176
  93. data/lib/kitchen/transport/dummy.rb +79 -79
  94. data/lib/kitchen/transport/ssh.rb +364 -364
  95. data/lib/kitchen/transport/winrm.rb +486 -486
  96. data/lib/kitchen/util.rb +147 -147
  97. data/lib/kitchen/verifier.rb +55 -55
  98. data/lib/kitchen/verifier/base.rb +235 -235
  99. data/lib/kitchen/verifier/busser.rb +277 -277
  100. data/lib/kitchen/verifier/dummy.rb +79 -79
  101. data/lib/kitchen/verifier/shell.rb +101 -101
  102. data/lib/kitchen/version.rb +21 -21
  103. data/lib/vendor/hash_recursive_merge.rb +82 -82
  104. data/spec/kitchen/base64_stream_spec.rb +77 -77
  105. data/spec/kitchen/cli_spec.rb +56 -56
  106. data/spec/kitchen/collection_spec.rb +80 -80
  107. data/spec/kitchen/color_spec.rb +54 -54
  108. data/spec/kitchen/config_spec.rb +408 -408
  109. data/spec/kitchen/configurable_spec.rb +1095 -1095
  110. data/spec/kitchen/data_munger_spec.rb +2694 -2694
  111. data/spec/kitchen/diagnostic_spec.rb +129 -129
  112. data/spec/kitchen/driver/base_spec.rb +121 -121
  113. data/spec/kitchen/driver/dummy_spec.rb +199 -199
  114. data/spec/kitchen/driver/proxy_spec.rb +138 -138
  115. data/spec/kitchen/driver/ssh_base_spec.rb +1115 -1115
  116. data/spec/kitchen/driver_spec.rb +112 -112
  117. data/spec/kitchen/errors_spec.rb +309 -309
  118. data/spec/kitchen/instance_spec.rb +1419 -1419
  119. data/spec/kitchen/lazy_hash_spec.rb +117 -117
  120. data/spec/kitchen/loader/yaml_spec.rb +774 -774
  121. data/spec/kitchen/logger_spec.rb +429 -429
  122. data/spec/kitchen/logging_spec.rb +59 -59
  123. data/spec/kitchen/login_command_spec.rb +68 -68
  124. data/spec/kitchen/metadata_chopper_spec.rb +82 -82
  125. data/spec/kitchen/platform_spec.rb +89 -89
  126. data/spec/kitchen/provisioner/base_spec.rb +386 -386
  127. data/spec/kitchen/provisioner/chef_apply_spec.rb +136 -136
  128. data/spec/kitchen/provisioner/chef_base_spec.rb +1161 -1161
  129. data/spec/kitchen/provisioner/chef_solo_spec.rb +557 -557
  130. data/spec/kitchen/provisioner/chef_zero_spec.rb +1001 -1001
  131. data/spec/kitchen/provisioner/dummy_spec.rb +99 -99
  132. data/spec/kitchen/provisioner/shell_spec.rb +566 -566
  133. data/spec/kitchen/provisioner_spec.rb +107 -107
  134. data/spec/kitchen/shell_out_spec.rb +150 -150
  135. data/spec/kitchen/ssh_spec.rb +693 -693
  136. data/spec/kitchen/state_file_spec.rb +129 -129
  137. data/spec/kitchen/suite_spec.rb +62 -62
  138. data/spec/kitchen/transport/base_spec.rb +89 -89
  139. data/spec/kitchen/transport/ssh_spec.rb +1255 -1255
  140. data/spec/kitchen/transport/winrm_spec.rb +1143 -1143
  141. data/spec/kitchen/transport_spec.rb +112 -112
  142. data/spec/kitchen/util_spec.rb +165 -165
  143. data/spec/kitchen/verifier/base_spec.rb +362 -362
  144. data/spec/kitchen/verifier/busser_spec.rb +610 -610
  145. data/spec/kitchen/verifier/dummy_spec.rb +99 -99
  146. data/spec/kitchen/verifier/shell_spec.rb +160 -160
  147. data/spec/kitchen/verifier_spec.rb +120 -120
  148. data/spec/kitchen_spec.rb +114 -114
  149. data/spec/spec_helper.rb +85 -85
  150. data/spec/support/powershell_max_size_spec.rb +40 -40
  151. data/support/busser_install_command.ps1 +14 -14
  152. data/support/busser_install_command.sh +14 -14
  153. data/support/chef-client-zero.rb +77 -77
  154. data/support/chef_base_init_command.ps1 +18 -18
  155. data/support/chef_base_init_command.sh +2 -2
  156. data/support/chef_base_install_command.ps1 +85 -85
  157. data/support/chef_base_install_command.sh +229 -229
  158. data/support/chef_zero_prepare_command_legacy.ps1 +9 -9
  159. data/support/chef_zero_prepare_command_legacy.sh +10 -10
  160. data/support/download_helpers.sh +109 -109
  161. data/support/dummy-validation.pem +27 -27
  162. data/templates/driver/CHANGELOG.md.erb +3 -3
  163. data/templates/driver/Gemfile.erb +3 -3
  164. data/templates/driver/README.md.erb +64 -64
  165. data/templates/driver/Rakefile.erb +21 -21
  166. data/templates/driver/driver.rb.erb +23 -23
  167. data/templates/driver/gemspec.erb +29 -29
  168. data/templates/driver/gitignore.erb +17 -17
  169. data/templates/driver/license_apachev2.erb +15 -15
  170. data/templates/driver/license_lgplv3.erb +16 -16
  171. data/templates/driver/license_mit.erb +22 -22
  172. data/templates/driver/license_reserved.erb +5 -5
  173. data/templates/driver/tailor.erb +4 -4
  174. data/templates/driver/travis.yml.erb +11 -11
  175. data/templates/driver/version.rb.erb +12 -12
  176. data/templates/init/chefignore.erb +1 -1
  177. data/templates/init/kitchen.yml.erb +18 -18
  178. data/test-kitchen.gemspec +62 -62
  179. data/test/integration/default/default_spec.rb +3 -3
  180. data/testing_windows.md +37 -37
  181. metadata +5 -4
data/CONTRIBUTING.md CHANGED
@@ -1,14 +1,14 @@
1
- # Release Process
2
-
3
- This release process applies to all Test Kitchen projects, but each project may have additional requirements.
4
-
5
- 1. Perform a Github diff between master and the last released version. Determine whether included PRs justify a patch, minor or major version release.
6
- 2. Check out the master branch of the project being prepared for release.
7
- 3. Branch into a release-branch of the form `150_release_prep`.
8
- 4. Modify the `version.rb` file to specify the version for releasing.
9
- 5. Run `rake changelog` to regenerate the changelog.
10
- 6. `git commit` the `version.rb` and `CHANGELOG.md` changes to the branch and setup a PR for them. Allow the PR to run any automated tests and review the CHANGELOG for accuracy.
11
- 7. Merge the PR to master after review.
12
- 8. Switch your local copy to the master branch and `git pull` to pull in the release preparation changes.
13
- 9. Run `rake release` on the master branch.
14
- 10. Modify the `version.rb` file and bump the patch or minor version, and commit/push.
1
+ # Release Process
2
+
3
+ This release process applies to all Test Kitchen projects, but each project may have additional requirements.
4
+
5
+ 1. Perform a Github diff between master and the last released version. Determine whether included PRs justify a patch, minor or major version release.
6
+ 2. Check out the master branch of the project being prepared for release.
7
+ 3. Branch into a release-branch of the form `150_release_prep`.
8
+ 4. Modify the `version.rb` file to specify the version for releasing.
9
+ 5. Run `rake changelog` to regenerate the changelog.
10
+ 6. `git commit` the `version.rb` and `CHANGELOG.md` changes to the branch and setup a PR for them. Allow the PR to run any automated tests and review the CHANGELOG for accuracy.
11
+ 7. Merge the PR to master after review.
12
+ 8. Switch your local copy to the master branch and `git pull` to pull in the release preparation changes.
13
+ 9. Run `rake release` on the master branch.
14
+ 10. Modify the `version.rb` file and bump the patch or minor version, and commit/push.
data/Gemfile CHANGED
@@ -1,19 +1,19 @@
1
- # -*- encoding: utf-8 -*-
2
- source "https://rubygems.org"
3
- gemspec
4
-
5
- group :guard do
6
- gem "guard-minitest"
7
- gem "guard-cucumber", "~> 1.4"
8
- gem "guard-rubocop"
9
- gem "guard-yard"
10
- end
11
-
12
- group :integration do
13
- gem "berkshelf", "~> 4.3"
14
- gem "kitchen-inspec", "~> 0.12.5"
15
- end
16
-
17
- group :test do
18
- gem "codeclimate-test-reporter", :require => nil
19
- end
1
+ # -*- encoding: utf-8 -*-
2
+ source "https://rubygems.org"
3
+ gemspec
4
+
5
+ group :guard do
6
+ gem "guard-minitest"
7
+ gem "guard-cucumber", "~> 1.4"
8
+ gem "guard-rubocop"
9
+ gem "guard-yard"
10
+ end
11
+
12
+ group :integration do
13
+ gem "berkshelf", "~> 4.3"
14
+ gem "kitchen-inspec", "~> 0.12.5"
15
+ end
16
+
17
+ group :test do
18
+ gem "codeclimate-test-reporter", :require => nil
19
+ end
data/Gemfile.proxy_tests CHANGED
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
2
- eval_gemfile File.join(File.dirname(__FILE__), "Gemfile")
3
-
4
- gem "chef-config"
1
+ # -*- encoding: utf-8 -*-
2
+ eval_gemfile File.join(File.dirname(__FILE__), "Gemfile")
3
+
4
+ gem "chef-config"
data/Guardfile CHANGED
@@ -1,42 +1,42 @@
1
- # -*- encoding: utf-8 -*-
2
- ignore %r{^\.gem/}
3
-
4
- def rubocop_opts
5
- { :all_on_start => false, :keep_failed => false, :cli => "-r finstyle" }
6
- end
7
-
8
- def cucumber_opts
9
- cucumber_cli = "--no-profile --color --format progress --strict"
10
- cucumber_cli += " --tags ~@spawn" if RUBY_PLATFORM =~ /mswin|mingw|windows/
11
-
12
- { :all_on_start => false, :cli => cucumber_cli }
13
- end
14
-
15
- def yard_opts
16
- { :port => "8808" }
17
- end
18
-
19
- group :red_green_refactor, :halt_on_fail => true do
20
- guard :minitest do
21
- watch(%r{^spec/(.*)_spec\.rb})
22
- watch(%r{^lib/(.*)([^/]+)\.rb}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
23
- watch(%r{^spec/spec_helper\.rb}) { "spec" }
24
- end
25
-
26
- guard :rubocop, rubocop_opts do
27
- watch(%r{.+\.rb$})
28
- watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
29
- end
30
- end
31
-
32
- guard :cucumber, cucumber_opts do
33
- watch(%r{^features/.+\.feature$})
34
- watch(%r{^features/support/.+$}) { "features" }
35
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
36
- Dir[File.join("**/#{m[1]}.feature")][0] || "features"
37
- end
38
- end
39
-
40
- guard :yard, yard_opts do
41
- watch(%r{lib/.+\.rb})
42
- end
1
+ # -*- encoding: utf-8 -*-
2
+ ignore %r{^\.gem/}
3
+
4
+ def rubocop_opts
5
+ { :all_on_start => false, :keep_failed => false, :cli => "-r finstyle" }
6
+ end
7
+
8
+ def cucumber_opts
9
+ cucumber_cli = "--no-profile --color --format progress --strict"
10
+ cucumber_cli += " --tags ~@spawn" if RUBY_PLATFORM =~ /mswin|mingw|windows/
11
+
12
+ { :all_on_start => false, :cli => cucumber_cli }
13
+ end
14
+
15
+ def yard_opts
16
+ { :port => "8808" }
17
+ end
18
+
19
+ group :red_green_refactor, :halt_on_fail => true do
20
+ guard :minitest do
21
+ watch(%r{^spec/(.*)_spec\.rb})
22
+ watch(%r{^lib/(.*)([^/]+)\.rb}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
23
+ watch(%r{^spec/spec_helper\.rb}) { "spec" }
24
+ end
25
+
26
+ guard :rubocop, rubocop_opts do
27
+ watch(%r{.+\.rb$})
28
+ watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
29
+ end
30
+ end
31
+
32
+ guard :cucumber, cucumber_opts do
33
+ watch(%r{^features/.+\.feature$})
34
+ watch(%r{^features/support/.+$}) { "features" }
35
+ watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
36
+ Dir[File.join("**/#{m[1]}.feature")][0] || "features"
37
+ end
38
+ end
39
+
40
+ guard :yard, yard_opts do
41
+ watch(%r{lib/.+\.rb})
42
+ end
data/LICENSE CHANGED
@@ -1,15 +1,15 @@
1
- Author:: Fletcher Nichol (<fnichol@nichol.ca>)
2
-
3
- Copyright 2012 Fletcher Nichol
4
-
5
- Licensed under the Apache License, Version 2.0 (the "License");
6
- you may not use this file except in compliance with the License.
7
- You may obtain a copy of the License at
8
-
9
- http://www.apache.org/licenses/LICENSE-2.0
10
-
11
- Unless required by applicable law or agreed to in writing, software
12
- distributed under the License is distributed on an "AS IS" BASIS,
13
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- See the License for the specific language governing permissions and
15
- limitations under the License.
1
+ Author:: Fletcher Nichol (<fnichol@nichol.ca>)
2
+
3
+ Copyright 2012 Fletcher Nichol
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
data/MAINTAINERS.md CHANGED
@@ -1,23 +1,23 @@
1
- # Maintainers
2
-
3
- This file lists how the Test Kitchen project is maintained. When making changes
4
- to the system, this file tells you who needs to review your patch. You need a :+1: vote
5
- from at least 2 members of the project team listed below. Additionally, you need to not
6
- receive a veto from the Lieutenant or the Project Lead.
7
-
8
- ## Project Lead
9
-
10
- * [Fletcher Nichol](https://github.com/fnichol)
11
-
12
- ## Lieutenants
13
- * [Seth Thomas](https://github.com/cheeseplus)
14
-
15
- ## Maintainers
16
-
17
- * [Adam Leff](https://github.com/adamleff)
18
- * [Jennifer Davis](https://github.com/iennae)
19
- * [Matt Wrock](https://github.com/mwrock)
20
- * [Steven Murawski](http://github.com/smurawski)
21
- * [Chris Hartmann](https://github.com/chris-rock)
22
- * [Sean Omeara](http://github.com/someara)
23
- * [Robb Kidd](https://github.com/robbkidd)
1
+ # Maintainers
2
+
3
+ This file lists how the Test Kitchen project is maintained. When making changes
4
+ to the system, this file tells you who needs to review your patch. You need a :+1: vote
5
+ from at least 2 members of the project team listed below. Additionally, you need to not
6
+ receive a veto from the Lieutenant or the Project Lead.
7
+
8
+ ## Project Lead
9
+
10
+ * [Fletcher Nichol](https://github.com/fnichol)
11
+
12
+ ## Lieutenants
13
+ * [Seth Thomas](https://github.com/cheeseplus)
14
+
15
+ ## Maintainers
16
+
17
+ * [Adam Leff](https://github.com/adamleff)
18
+ * [Jennifer Davis](https://github.com/iennae)
19
+ * [Matt Wrock](https://github.com/mwrock)
20
+ * [Steven Murawski](http://github.com/smurawski)
21
+ * [Chris Hartmann](https://github.com/chris-rock)
22
+ * [Sean Omeara](http://github.com/someara)
23
+ * [Robb Kidd](https://github.com/robbkidd)
data/README.md CHANGED
@@ -1,135 +1,135 @@
1
- # Test Kitchen
2
-
3
- [![Gem Version](https://badge.fury.io/rb/test-kitchen.svg)](http://badge.fury.io/rb/test-kitchen)
4
- [![Build Status](https://secure.travis-ci.org/test-kitchen/test-kitchen.svg?branch=master)](https://travis-ci.org/test-kitchen/test-kitchen)
5
- [![Code Climate](https://codeclimate.com/github/test-kitchen/test-kitchen.svg)](https://codeclimate.com/github/test-kitchen/test-kitchen)
6
- [![Test Coverage](https://codeclimate.com/github/test-kitchen/test-kitchen/coverage.svg)](https://codeclimate.com/github/test-kitchen/test-kitchen)
7
- [![Dependency Status](https://gemnasium.com/test-kitchen/test-kitchen.svg)](https://gemnasium.com/test-kitchen/test-kitchen)
8
- [![Inline docs](http://inch-ci.org/github/test-kitchen/test-kitchen.svg?branch=master)](http://inch-ci.org/github/test-kitchen/test-kitchen)
9
-
10
- | | |
11
- |-------------|-----------------------------------------------|
12
- | Website | http://kitchen.ci |
13
- | Source Code | http://kitchen.ci/docs/getting-started/ |
14
- | IRC | [#kitchenci][irc] channel on Freenode, [transcript][irc_log] thanks to [BotBot.me][botbotme] |
15
- | Twitter | [@kitchenci][twitter] |
16
-
17
- > **Test Kitchen is an integration tool for developing and testing
18
- > infrastructure code and software on isolated target platforms.**
19
-
20
- ## Getting Started Guide
21
-
22
- To learn how to install and setup Test Kitchen for developing infrastructure
23
- code, check out the [Getting Started Guide][guide].
24
-
25
- If you want to get going super fast, then try the Quick Start next...
26
-
27
- ## Quick Start
28
-
29
- Test Kitchen is a RubyGem and can be installed with:
30
-
31
- ```
32
- $ gem install test-kitchen
33
- ```
34
-
35
- If you use Bundler, you can add `gem "test-kitchen"` to your Gemfile and make
36
- sure to run `bundle install`.
37
-
38
- Next add support to your library, Chef cookbook, or empty project with `kitchen
39
- init`:
40
-
41
- ```
42
- $ kitchen init
43
- ```
44
-
45
- A `.kitchen.yml` will be created in your project base directory. This file
46
- describes your testing configuration; what you want to test and on which target
47
- platforms. Each of these suite and platform combinations are called instances.
48
- By default your instances will be converged with Chef Solo and run in Vagrant
49
- virtual machines.
50
-
51
- Get a listing of your instances with:
52
-
53
- ```
54
- $ kitchen list
55
- ```
56
-
57
- Run Chef on an instance, in this case `default-ubuntu-1204`, with:
58
-
59
- ```
60
- $ kitchen converge default-ubuntu-1204
61
- ```
62
-
63
- Destroy all instances with:
64
-
65
- ```
66
- $ kitchen destroy
67
- ```
68
-
69
- You can clone a Chef cookbook project that contains Test Kitchen support and
70
- run through all the instances in serial by running:
71
-
72
- ```
73
- $ kitchen test
74
- ```
75
-
76
- ## Usage
77
-
78
- There is help included with the `kitchen help` subcommand which will list all
79
- subcommands and their usage:
80
-
81
- ```
82
- $ kitchen help test
83
- ```
84
-
85
- More verbose logging (for both test-kitchen and the chef-solo/chef-zero provisioners) can be specified when running test-kitchen form the command line using:
86
-
87
- ```
88
- $ kitchen test -l debug
89
- ```
90
-
91
- ## Documentation
92
-
93
- Documentation is being added on the Test Kitchen [website][website]. Please
94
- read and contribute to improve them!
95
-
96
- ## Versioning
97
-
98
- Test Kitchen aims to adhere to [Semantic Versioning 2.0.0][semver].
99
-
100
- ## Development
101
-
102
- * Source hosted at [GitHub][repo]
103
- * Report issues/questions/feature requests on [GitHub Issues][issues]
104
-
105
- Pull requests are very welcome! Make sure your patches are well tested.
106
- Ideally create a topic branch for every separate change you make. For
107
- example:
108
-
109
- 1. Fork the repo
110
- 2. Create your feature branch (`git checkout -b my-new-feature`)
111
- 3. Commit your changes (`git commit -am 'Added some feature'`)
112
- 4. Push to the branch (`git push origin my-new-feature`)
113
- 5. Create new Pull Request
114
-
115
- ## Authors
116
-
117
- Created and maintained by [Fletcher Nichol][fnichol] (<fnichol@nichol.ca>) and
118
- a growing community of [contributors][contributors].
119
-
120
- ## License
121
-
122
- Apache License, Version 2.0 (see [LICENSE][license])
123
-
124
- [botbotme]: https://botbot.me/
125
- [contributors]: https://github.com/test-kitchen/test-kitchen/graphs/contributors
126
- [fnichol]: https://github.com/fnichol
127
- [guide]: http://kitchen.ci/docs/getting-started/
128
- [irc]: http://webchat.freenode.net/?channels=kitchenci
129
- [irc_log]: https://botbot.me/freenode/kitchenci/
130
- [issues]: https://github.com/test-kitchen/test-kitchen/issues
131
- [license]: https://github.com/test-kitchen/test-kitchen/blob/master/LICENSE
132
- [repo]: https://github.com/test-kitchen/test-kitchen
133
- [semver]: http://semver.org/
134
- [twitter]: https://twitter.com/kitchenci
135
- [website]: http://kitchen.ci
1
+ # Test Kitchen
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/test-kitchen.svg)](http://badge.fury.io/rb/test-kitchen)
4
+ [![Build Status](https://secure.travis-ci.org/test-kitchen/test-kitchen.svg?branch=master)](https://travis-ci.org/test-kitchen/test-kitchen)
5
+ [![Code Climate](https://codeclimate.com/github/test-kitchen/test-kitchen.svg)](https://codeclimate.com/github/test-kitchen/test-kitchen)
6
+ [![Test Coverage](https://codeclimate.com/github/test-kitchen/test-kitchen/coverage.svg)](https://codeclimate.com/github/test-kitchen/test-kitchen)
7
+ [![Dependency Status](https://gemnasium.com/test-kitchen/test-kitchen.svg)](https://gemnasium.com/test-kitchen/test-kitchen)
8
+ [![Inline docs](http://inch-ci.org/github/test-kitchen/test-kitchen.svg?branch=master)](http://inch-ci.org/github/test-kitchen/test-kitchen)
9
+
10
+ | | |
11
+ |-------------|-----------------------------------------------|
12
+ | Website | http://kitchen.ci |
13
+ | Source Code | http://kitchen.ci/docs/getting-started/ |
14
+ | IRC | [#kitchenci][irc] channel on Freenode, [transcript][irc_log] thanks to [BotBot.me][botbotme] |
15
+ | Twitter | [@kitchenci][twitter] |
16
+
17
+ > **Test Kitchen is an integration tool for developing and testing
18
+ > infrastructure code and software on isolated target platforms.**
19
+
20
+ ## Getting Started Guide
21
+
22
+ To learn how to install and setup Test Kitchen for developing infrastructure
23
+ code, check out the [Getting Started Guide][guide].
24
+
25
+ If you want to get going super fast, then try the Quick Start next...
26
+
27
+ ## Quick Start
28
+
29
+ Test Kitchen is a RubyGem and can be installed with:
30
+
31
+ ```
32
+ $ gem install test-kitchen
33
+ ```
34
+
35
+ If you use Bundler, you can add `gem "test-kitchen"` to your Gemfile and make
36
+ sure to run `bundle install`.
37
+
38
+ Next add support to your library, Chef cookbook, or empty project with `kitchen
39
+ init`:
40
+
41
+ ```
42
+ $ kitchen init
43
+ ```
44
+
45
+ A `.kitchen.yml` will be created in your project base directory. This file
46
+ describes your testing configuration; what you want to test and on which target
47
+ platforms. Each of these suite and platform combinations are called instances.
48
+ By default your instances will be converged with Chef Solo and run in Vagrant
49
+ virtual machines.
50
+
51
+ Get a listing of your instances with:
52
+
53
+ ```
54
+ $ kitchen list
55
+ ```
56
+
57
+ Run Chef on an instance, in this case `default-ubuntu-1204`, with:
58
+
59
+ ```
60
+ $ kitchen converge default-ubuntu-1204
61
+ ```
62
+
63
+ Destroy all instances with:
64
+
65
+ ```
66
+ $ kitchen destroy
67
+ ```
68
+
69
+ You can clone a Chef cookbook project that contains Test Kitchen support and
70
+ run through all the instances in serial by running:
71
+
72
+ ```
73
+ $ kitchen test
74
+ ```
75
+
76
+ ## Usage
77
+
78
+ There is help included with the `kitchen help` subcommand which will list all
79
+ subcommands and their usage:
80
+
81
+ ```
82
+ $ kitchen help test
83
+ ```
84
+
85
+ More verbose logging (for both test-kitchen and the chef-solo/chef-zero provisioners) can be specified when running test-kitchen form the command line using:
86
+
87
+ ```
88
+ $ kitchen test -l debug
89
+ ```
90
+
91
+ ## Documentation
92
+
93
+ Documentation is being added on the Test Kitchen [website][website]. Please
94
+ read and contribute to improve them!
95
+
96
+ ## Versioning
97
+
98
+ Test Kitchen aims to adhere to [Semantic Versioning 2.0.0][semver].
99
+
100
+ ## Development
101
+
102
+ * Source hosted at [GitHub][repo]
103
+ * Report issues/questions/feature requests on [GitHub Issues][issues]
104
+
105
+ Pull requests are very welcome! Make sure your patches are well tested.
106
+ Ideally create a topic branch for every separate change you make. For
107
+ example:
108
+
109
+ 1. Fork the repo
110
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
111
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
112
+ 4. Push to the branch (`git push origin my-new-feature`)
113
+ 5. Create new Pull Request
114
+
115
+ ## Authors
116
+
117
+ Created and maintained by [Fletcher Nichol][fnichol] (<fnichol@nichol.ca>) and
118
+ a growing community of [contributors][contributors].
119
+
120
+ ## License
121
+
122
+ Apache License, Version 2.0 (see [LICENSE][license])
123
+
124
+ [botbotme]: https://botbot.me/
125
+ [contributors]: https://github.com/test-kitchen/test-kitchen/graphs/contributors
126
+ [fnichol]: https://github.com/fnichol
127
+ [guide]: http://kitchen.ci/docs/getting-started/
128
+ [irc]: http://webchat.freenode.net/?channels=kitchenci
129
+ [irc_log]: https://botbot.me/freenode/kitchenci/
130
+ [issues]: https://github.com/test-kitchen/test-kitchen/issues
131
+ [license]: https://github.com/test-kitchen/test-kitchen/blob/master/LICENSE
132
+ [repo]: https://github.com/test-kitchen/test-kitchen
133
+ [semver]: http://semver.org/
134
+ [twitter]: https://twitter.com/kitchenci
135
+ [website]: http://kitchen.ci