test-kitchen 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +4 -4
  2. data/.cane +8 -7
  3. data/.github/ISSUE_TEMPLATE.md +56 -0
  4. data/.gitignore +28 -27
  5. data/.kitchen.ci.yml +23 -0
  6. data/.kitchen.proxy.yml +27 -0
  7. data/.rubocop.yml +3 -3
  8. data/.travis.yml +70 -53
  9. data/.yardopts +3 -3
  10. data/Berksfile +3 -0
  11. data/CHANGELOG.md +1083 -1051
  12. data/CONTRIBUTING.md +14 -14
  13. data/Gemfile +19 -14
  14. data/Gemfile.proxy_tests +4 -5
  15. data/Guardfile +42 -42
  16. data/LICENSE +15 -15
  17. data/MAINTAINERS.md +23 -24
  18. data/README.md +135 -135
  19. data/Rakefile +61 -76
  20. data/appveyor.yml +44 -34
  21. data/features/kitchen_action_commands.feature +164 -164
  22. data/features/kitchen_command.feature +16 -16
  23. data/features/kitchen_console_command.feature +34 -34
  24. data/features/kitchen_defaults.feature +38 -38
  25. data/features/kitchen_diagnose_command.feature +96 -96
  26. data/features/kitchen_driver_create_command.feature +64 -64
  27. data/features/kitchen_driver_discover_command.feature +25 -25
  28. data/features/kitchen_help_command.feature +16 -16
  29. data/features/kitchen_init_command.feature +274 -274
  30. data/features/kitchen_list_command.feature +104 -104
  31. data/features/kitchen_login_command.feature +62 -62
  32. data/features/kitchen_sink_command.feature +30 -30
  33. data/features/kitchen_test_command.feature +88 -88
  34. data/features/step_definitions/gem_steps.rb +36 -36
  35. data/features/step_definitions/git_steps.rb +5 -5
  36. data/features/step_definitions/output_steps.rb +5 -5
  37. data/features/support/env.rb +75 -75
  38. data/lib/kitchen.rb +150 -150
  39. data/lib/kitchen/base64_stream.rb +55 -55
  40. data/lib/kitchen/cli.rb +419 -419
  41. data/lib/kitchen/collection.rb +55 -55
  42. data/lib/kitchen/color.rb +65 -65
  43. data/lib/kitchen/command.rb +185 -185
  44. data/lib/kitchen/command/action.rb +45 -45
  45. data/lib/kitchen/command/console.rb +58 -58
  46. data/lib/kitchen/command/diagnose.rb +92 -92
  47. data/lib/kitchen/command/driver_discover.rb +105 -105
  48. data/lib/kitchen/command/exec.rb +41 -41
  49. data/lib/kitchen/command/list.rb +119 -119
  50. data/lib/kitchen/command/login.rb +43 -43
  51. data/lib/kitchen/command/sink.rb +54 -54
  52. data/lib/kitchen/command/test.rb +51 -51
  53. data/lib/kitchen/config.rb +322 -322
  54. data/lib/kitchen/configurable.rb +529 -529
  55. data/lib/kitchen/data_munger.rb +959 -960
  56. data/lib/kitchen/diagnostic.rb +141 -141
  57. data/lib/kitchen/driver.rb +56 -56
  58. data/lib/kitchen/driver/base.rb +134 -134
  59. data/lib/kitchen/driver/dummy.rb +108 -108
  60. data/lib/kitchen/driver/proxy.rb +72 -72
  61. data/lib/kitchen/driver/ssh_base.rb +357 -357
  62. data/lib/kitchen/errors.rb +229 -229
  63. data/lib/kitchen/generator/driver_create.rb +177 -177
  64. data/lib/kitchen/generator/init.rb +296 -296
  65. data/lib/kitchen/instance.rb +662 -662
  66. data/lib/kitchen/lazy_hash.rb +142 -142
  67. data/lib/kitchen/loader/yaml.rb +349 -349
  68. data/lib/kitchen/logger.rb +423 -423
  69. data/lib/kitchen/logging.rb +56 -56
  70. data/lib/kitchen/login_command.rb +52 -52
  71. data/lib/kitchen/metadata_chopper.rb +52 -52
  72. data/lib/kitchen/platform.rb +67 -67
  73. data/lib/kitchen/provisioner.rb +54 -54
  74. data/lib/kitchen/provisioner/base.rb +236 -236
  75. data/lib/kitchen/provisioner/chef/berkshelf.rb +114 -114
  76. data/lib/kitchen/provisioner/chef/common_sandbox.rb +322 -322
  77. data/lib/kitchen/provisioner/chef/librarian.rb +112 -112
  78. data/lib/kitchen/provisioner/chef_apply.rb +124 -125
  79. data/lib/kitchen/provisioner/chef_base.rb +341 -294
  80. data/lib/kitchen/provisioner/chef_solo.rb +88 -89
  81. data/lib/kitchen/provisioner/chef_zero.rb +245 -245
  82. data/lib/kitchen/provisioner/dummy.rb +79 -79
  83. data/lib/kitchen/provisioner/shell.rb +138 -138
  84. data/lib/kitchen/rake_tasks.rb +63 -63
  85. data/lib/kitchen/shell_out.rb +93 -93
  86. data/lib/kitchen/ssh.rb +276 -276
  87. data/lib/kitchen/state_file.rb +120 -120
  88. data/lib/kitchen/suite.rb +51 -51
  89. data/lib/kitchen/thor_tasks.rb +66 -66
  90. data/lib/kitchen/transport.rb +54 -54
  91. data/lib/kitchen/transport/base.rb +176 -176
  92. data/lib/kitchen/transport/dummy.rb +79 -79
  93. data/lib/kitchen/transport/ssh.rb +364 -364
  94. data/lib/kitchen/transport/winrm.rb +486 -486
  95. data/lib/kitchen/util.rb +147 -147
  96. data/lib/kitchen/verifier.rb +55 -55
  97. data/lib/kitchen/verifier/base.rb +235 -235
  98. data/lib/kitchen/verifier/busser.rb +277 -277
  99. data/lib/kitchen/verifier/dummy.rb +79 -79
  100. data/lib/kitchen/verifier/shell.rb +101 -101
  101. data/lib/kitchen/version.rb +21 -21
  102. data/lib/vendor/hash_recursive_merge.rb +82 -82
  103. data/spec/kitchen/base64_stream_spec.rb +77 -77
  104. data/spec/kitchen/cli_spec.rb +56 -56
  105. data/spec/kitchen/collection_spec.rb +80 -80
  106. data/spec/kitchen/color_spec.rb +54 -54
  107. data/spec/kitchen/config_spec.rb +408 -408
  108. data/spec/kitchen/configurable_spec.rb +1095 -1062
  109. data/spec/kitchen/data_munger_spec.rb +2694 -2383
  110. data/spec/kitchen/diagnostic_spec.rb +129 -129
  111. data/spec/kitchen/driver/base_spec.rb +121 -121
  112. data/spec/kitchen/driver/dummy_spec.rb +199 -199
  113. data/spec/kitchen/driver/proxy_spec.rb +138 -138
  114. data/spec/kitchen/driver/ssh_base_spec.rb +1115 -1115
  115. data/spec/kitchen/driver_spec.rb +112 -112
  116. data/spec/kitchen/errors_spec.rb +309 -309
  117. data/spec/kitchen/instance_spec.rb +1419 -1419
  118. data/spec/kitchen/lazy_hash_spec.rb +117 -117
  119. data/spec/kitchen/loader/yaml_spec.rb +774 -774
  120. data/spec/kitchen/logger_spec.rb +429 -429
  121. data/spec/kitchen/logging_spec.rb +59 -59
  122. data/spec/kitchen/login_command_spec.rb +68 -68
  123. data/spec/kitchen/metadata_chopper_spec.rb +82 -82
  124. data/spec/kitchen/platform_spec.rb +89 -89
  125. data/spec/kitchen/provisioner/base_spec.rb +386 -386
  126. data/spec/kitchen/provisioner/chef_apply_spec.rb +136 -136
  127. data/spec/kitchen/provisioner/chef_base_spec.rb +1161 -1067
  128. data/spec/kitchen/provisioner/chef_solo_spec.rb +557 -557
  129. data/spec/kitchen/provisioner/chef_zero_spec.rb +1001 -1001
  130. data/spec/kitchen/provisioner/dummy_spec.rb +99 -99
  131. data/spec/kitchen/provisioner/shell_spec.rb +566 -566
  132. data/spec/kitchen/provisioner_spec.rb +107 -107
  133. data/spec/kitchen/shell_out_spec.rb +150 -150
  134. data/spec/kitchen/ssh_spec.rb +693 -693
  135. data/spec/kitchen/state_file_spec.rb +129 -129
  136. data/spec/kitchen/suite_spec.rb +62 -62
  137. data/spec/kitchen/transport/base_spec.rb +89 -89
  138. data/spec/kitchen/transport/ssh_spec.rb +1255 -1255
  139. data/spec/kitchen/transport/winrm_spec.rb +1143 -1143
  140. data/spec/kitchen/transport_spec.rb +112 -112
  141. data/spec/kitchen/util_spec.rb +165 -165
  142. data/spec/kitchen/verifier/base_spec.rb +362 -362
  143. data/spec/kitchen/verifier/busser_spec.rb +610 -610
  144. data/spec/kitchen/verifier/dummy_spec.rb +99 -99
  145. data/spec/kitchen/verifier/shell_spec.rb +160 -158
  146. data/spec/kitchen/verifier_spec.rb +120 -120
  147. data/spec/kitchen_spec.rb +114 -114
  148. data/spec/spec_helper.rb +85 -85
  149. data/spec/support/powershell_max_size_spec.rb +40 -40
  150. data/support/busser_install_command.ps1 +14 -14
  151. data/support/busser_install_command.sh +14 -14
  152. data/support/chef-client-zero.rb +77 -77
  153. data/support/chef_base_init_command.ps1 +18 -18
  154. data/support/chef_base_init_command.sh +2 -2
  155. data/support/chef_base_install_command.ps1 +85 -85
  156. data/support/chef_base_install_command.sh +229 -229
  157. data/support/chef_zero_prepare_command_legacy.ps1 +9 -9
  158. data/support/chef_zero_prepare_command_legacy.sh +10 -10
  159. data/support/download_helpers.sh +109 -109
  160. data/support/dummy-validation.pem +27 -27
  161. data/templates/driver/CHANGELOG.md.erb +3 -3
  162. data/templates/driver/Gemfile.erb +3 -3
  163. data/templates/driver/README.md.erb +64 -64
  164. data/templates/driver/Rakefile.erb +21 -21
  165. data/templates/driver/driver.rb.erb +23 -23
  166. data/templates/driver/gemspec.erb +29 -29
  167. data/templates/driver/gitignore.erb +17 -17
  168. data/templates/driver/license_apachev2.erb +15 -15
  169. data/templates/driver/license_lgplv3.erb +16 -16
  170. data/templates/driver/license_mit.erb +22 -22
  171. data/templates/driver/license_reserved.erb +5 -5
  172. data/templates/driver/tailor.erb +4 -4
  173. data/templates/driver/travis.yml.erb +11 -11
  174. data/templates/driver/version.rb.erb +12 -12
  175. data/templates/init/chefignore.erb +1 -1
  176. data/templates/init/kitchen.yml.erb +18 -18
  177. data/test-kitchen.gemspec +62 -62
  178. data/test/integration/default/default_spec.rb +3 -0
  179. data/testing_windows.md +37 -37
  180. metadata +23 -11
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,14 +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 :test do
13
- gem "codeclimate-test-reporter", :require => nil
14
- 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,5 +1,4 @@
1
- # -*- encoding: utf-8 -*-
2
- eval_gemfile File.join(File.dirname(__FILE__), "Gemfile")
3
-
4
- gem "kitchen-ec2"
5
- 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,24 +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
- * [Tyler Ball](https://github.com/tyler-ball)
14
-
15
- ## Maintainers
16
-
17
- * [Seth Thomas](https://github.com/cheeseplus)
18
- * [Adam Leff](https://github.com/adamleff)
19
- * [Jennifer Davis](https://github.com/iennae)
20
- * [Matt Wrock](https://github.com/mwrock)
21
- * [Steven Murawski](http://github.com/smurawski)
22
- * [Chris Hartmann](https://github.com/chris-rock)
23
- * [Sean Omeara](http://github.com/someara)
24
- * [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