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
@@ -1,104 +1,104 @@
1
- Feature: Listing Test Kitchen instances
2
- In order to understand how the .kitchen.yml is consumed
3
- As a user of Test Kitchen
4
- I want to run a command to see the state of my instances
5
-
6
- Background:
7
- Given a file named ".kitchen.yml" with:
8
- """
9
- ---
10
- driver: dummy
11
- provisioner: chef_solo
12
-
13
- platforms:
14
- - name: ubuntu-13.04
15
- - name: centos-6.4
16
- - name: centos-6.4-with-small-mem
17
-
18
- suites:
19
- - name: foobar
20
- """
21
-
22
- Scenario: Listing instances
23
- When I run `kitchen list`
24
- Then the exit status should be 0
25
- And the output should match /^foobar-ubuntu-1304\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
26
- And the output should match /^foobar-centos-64\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
27
-
28
- Scenario: Listing instances with the --bare option
29
- When I run `kitchen list --bare`
30
- Then the exit status should be 0
31
- And the output should contain exactly:
32
- """
33
- foobar-ubuntu-1304
34
- foobar-centos-64
35
- foobar-centos-64-with-small-mem
36
-
37
- """
38
-
39
- Scenario: Listing instances with a simple regular expression glob
40
- When I successfully run `kitchen list ubun --bare`
41
- Then the output should contain exactly:
42
- """
43
- foobar-ubuntu-1304
44
-
45
- """
46
-
47
- Scenario: Listing instances with a Ruby regular expression glob, requiring
48
- signle quoting on the command line
49
- When I successfully run `kitchen list '^foo.*\-(10|13)04$' --bare`
50
- Then the output should contain exactly:
51
- """
52
- foobar-ubuntu-1304
53
-
54
- """
55
-
56
- @spawn
57
- Scenario: Listing instances with a regular expression yielding no results
58
- When I run `kitchen list freebsd --bare`
59
- Then the exit status should not be 0
60
- And the output should contain "No instances for regex `freebsd', try running `kitchen list'"
61
-
62
- @spawn
63
- Scenario: Listing instances with a bad regular expression
64
- When I run `kitchen list *centos* --bare`
65
- Then the exit status should not be 0
66
- And the output should contain "Invalid Ruby regular expression"
67
-
68
- Scenario: Listing a full instance name returns an exact match, not fuzzy matches
69
- When I successfully run `kitchen list foobar-centos-64 --bare`
70
- Then the output should contain exactly:
71
- """
72
- foobar-centos-64
73
-
74
- """
75
-
76
- Scenario: Listing a full instance name returns an exact match, not fuzzy matches at start
77
- Given a file named ".kitchen.yml" with:
78
- """
79
- ---
80
- driver: dummy
81
- provisioner: chef_solo
82
-
83
- platforms:
84
- - name: ubuntu-12.04
85
-
86
- suites:
87
- - name: gdb01-master
88
- - name: logdb01-master
89
- """
90
- When I successfully run `kitchen list gdb01-master-ubuntu-1204 --bare`
91
- Then the output should contain exactly:
92
- """
93
- gdb01-master-ubuntu-1204
94
-
95
- """
96
-
97
- Scenario: Listing a full instance with regex returns all regex matches
98
- When I successfully run `kitchen list 'foobar-centos-64.*' --bare`
99
- Then the output should contain exactly:
100
- """
101
- foobar-centos-64
102
- foobar-centos-64-with-small-mem
103
-
104
- """
1
+ Feature: Listing Test Kitchen instances
2
+ In order to understand how the .kitchen.yml is consumed
3
+ As a user of Test Kitchen
4
+ I want to run a command to see the state of my instances
5
+
6
+ Background:
7
+ Given a file named ".kitchen.yml" with:
8
+ """
9
+ ---
10
+ driver: dummy
11
+ provisioner: chef_solo
12
+
13
+ platforms:
14
+ - name: ubuntu-13.04
15
+ - name: centos-6.4
16
+ - name: centos-6.4-with-small-mem
17
+
18
+ suites:
19
+ - name: foobar
20
+ """
21
+
22
+ Scenario: Listing instances
23
+ When I run `kitchen list`
24
+ Then the exit status should be 0
25
+ And the output should match /^foobar-ubuntu-1304\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
26
+ And the output should match /^foobar-centos-64\s+Dummy\s+ChefSolo\s+Busser\s+Ssh\s+\<Not Created\>$/
27
+
28
+ Scenario: Listing instances with the --bare option
29
+ When I run `kitchen list --bare`
30
+ Then the exit status should be 0
31
+ And the output should contain exactly:
32
+ """
33
+ foobar-ubuntu-1304
34
+ foobar-centos-64
35
+ foobar-centos-64-with-small-mem
36
+
37
+ """
38
+
39
+ Scenario: Listing instances with a simple regular expression glob
40
+ When I successfully run `kitchen list ubun --bare`
41
+ Then the output should contain exactly:
42
+ """
43
+ foobar-ubuntu-1304
44
+
45
+ """
46
+
47
+ Scenario: Listing instances with a Ruby regular expression glob, requiring
48
+ signle quoting on the command line
49
+ When I successfully run `kitchen list '^foo.*\-(10|13)04$' --bare`
50
+ Then the output should contain exactly:
51
+ """
52
+ foobar-ubuntu-1304
53
+
54
+ """
55
+
56
+ @spawn
57
+ Scenario: Listing instances with a regular expression yielding no results
58
+ When I run `kitchen list freebsd --bare`
59
+ Then the exit status should not be 0
60
+ And the output should contain "No instances for regex `freebsd', try running `kitchen list'"
61
+
62
+ @spawn
63
+ Scenario: Listing instances with a bad regular expression
64
+ When I run `kitchen list *centos* --bare`
65
+ Then the exit status should not be 0
66
+ And the output should contain "Invalid Ruby regular expression"
67
+
68
+ Scenario: Listing a full instance name returns an exact match, not fuzzy matches
69
+ When I successfully run `kitchen list foobar-centos-64 --bare`
70
+ Then the output should contain exactly:
71
+ """
72
+ foobar-centos-64
73
+
74
+ """
75
+
76
+ Scenario: Listing a full instance name returns an exact match, not fuzzy matches at start
77
+ Given a file named ".kitchen.yml" with:
78
+ """
79
+ ---
80
+ driver: dummy
81
+ provisioner: chef_solo
82
+
83
+ platforms:
84
+ - name: ubuntu-12.04
85
+
86
+ suites:
87
+ - name: gdb01-master
88
+ - name: logdb01-master
89
+ """
90
+ When I successfully run `kitchen list gdb01-master-ubuntu-1204 --bare`
91
+ Then the output should contain exactly:
92
+ """
93
+ gdb01-master-ubuntu-1204
94
+
95
+ """
96
+
97
+ Scenario: Listing a full instance with regex returns all regex matches
98
+ When I successfully run `kitchen list 'foobar-centos-64.*' --bare`
99
+ Then the output should contain exactly:
100
+ """
101
+ foobar-centos-64
102
+ foobar-centos-64-with-small-mem
103
+
104
+ """
@@ -1,62 +1,62 @@
1
- Feature: Logging into a Kitchen instance
2
- In order to iterate, explore, and debug
3
- As a crafty developer
4
- I want to run a command that will give me a terminal session
5
-
6
- Background:
7
- Given a file named ".kitchen.yml" with:
8
- """
9
- ---
10
- driver:
11
- name: dummy
12
-
13
- transport:
14
- name: dummy
15
-
16
- provisioner:
17
- name: dummy
18
-
19
- platforms:
20
- - name: flebian
21
-
22
- suites:
23
- - name: default
24
- - name: full
25
- """
26
- And I successfully run `kitchen create default-flebian`
27
-
28
- @spawn
29
- Scenario: Logging in to an instance
30
- When I run `kitchen login default-flebian`
31
- Then the output should contain:
32
- """
33
- Remote login not supported in Kitchen::Transport::Dummy::Connection.
34
- """
35
- And the exit status should not be 0
36
-
37
- @spawn
38
- Scenario: Attempting to log into a non-created instance
39
- When I run `kitchen login full-flebian`
40
- Then the output should contain:
41
- """
42
- Instance <full-flebian> has not yet been created
43
- """
44
- And the exit status should not be 0
45
-
46
- @spawn
47
- Scenario: Attempting to log into a non-existent instance
48
- When I run `kitchen login nope`
49
- Then the output should contain "No instances for regex `nope'"
50
- And the exit status should not be 0
51
-
52
- @spawn
53
- Scenario: Attempting to log into an instance with an overly fuzzy match
54
- When I run `kitchen login flebian`
55
- Then the output should contain:
56
- """
57
- Argument `flebian' returned multiple results:
58
- * default-flebian
59
- * full-flebian
60
- """
61
- And the exit status should not be 0
62
-
1
+ Feature: Logging into a Kitchen instance
2
+ In order to iterate, explore, and debug
3
+ As a crafty developer
4
+ I want to run a command that will give me a terminal session
5
+
6
+ Background:
7
+ Given a file named ".kitchen.yml" with:
8
+ """
9
+ ---
10
+ driver:
11
+ name: dummy
12
+
13
+ transport:
14
+ name: dummy
15
+
16
+ provisioner:
17
+ name: dummy
18
+
19
+ platforms:
20
+ - name: flebian
21
+
22
+ suites:
23
+ - name: default
24
+ - name: full
25
+ """
26
+ And I successfully run `kitchen create default-flebian`
27
+
28
+ @spawn
29
+ Scenario: Logging in to an instance
30
+ When I run `kitchen login default-flebian`
31
+ Then the output should contain:
32
+ """
33
+ Remote login not supported in Kitchen::Transport::Dummy::Connection.
34
+ """
35
+ And the exit status should not be 0
36
+
37
+ @spawn
38
+ Scenario: Attempting to log into a non-created instance
39
+ When I run `kitchen login full-flebian`
40
+ Then the output should contain:
41
+ """
42
+ Instance <full-flebian> has not yet been created
43
+ """
44
+ And the exit status should not be 0
45
+
46
+ @spawn
47
+ Scenario: Attempting to log into a non-existent instance
48
+ When I run `kitchen login nope`
49
+ Then the output should contain "No instances for regex `nope'"
50
+ And the exit status should not be 0
51
+
52
+ @spawn
53
+ Scenario: Attempting to log into an instance with an overly fuzzy match
54
+ When I run `kitchen login flebian`
55
+ Then the output should contain:
56
+ """
57
+ Argument `flebian' returned multiple results:
58
+ * default-flebian
59
+ * full-flebian
60
+ """
61
+ And the exit status should not be 0
62
+
@@ -1,30 +1,30 @@
1
- Feature: The `kitchen sink` command
2
- In order to have fun and provide an Easter Egg for users
3
- As a Test Kitchen user
4
- I want a `sink` command that displays ASCII art
5
-
6
- Scenario: Displaying help
7
- When I run `kitchen help`
8
- Then the exit status should be 0
9
- And the output should not contain "kitchen sink"
10
-
11
- Scenario: Displaying the sink
12
- When I run `kitchen sink`
13
- Then the exit status should be 0
14
- And the output should contain:
15
- """
16
- ___
17
- ' _ '.
18
- / /` `\ \
19
- | | [__]
20
- | | {{
21
- | | }}
22
- _ | | _ {{
23
- ___________<_>_| |_<_>}}________
24
- .=======^=(___)=^={{====.
25
- / .----------------}}---. \
26
- / / {{ \ \
27
- / / }} \ \
28
- ( '=========================' )
29
- '-----------------------------'
30
- """
1
+ Feature: The `kitchen sink` command
2
+ In order to have fun and provide an Easter Egg for users
3
+ As a Test Kitchen user
4
+ I want a `sink` command that displays ASCII art
5
+
6
+ Scenario: Displaying help
7
+ When I run `kitchen help`
8
+ Then the exit status should be 0
9
+ And the output should not contain "kitchen sink"
10
+
11
+ Scenario: Displaying the sink
12
+ When I run `kitchen sink`
13
+ Then the exit status should be 0
14
+ And the output should contain:
15
+ """
16
+ ___
17
+ ' _ '.
18
+ / /` `\ \
19
+ | | [__]
20
+ | | {{
21
+ | | }}
22
+ _ | | _ {{
23
+ ___________<_>_| |_<_>}}________
24
+ .=======^=(___)=^={{====.
25
+ / .----------------}}---. \
26
+ / / {{ \ \
27
+ / / }} \ \
28
+ ( '=========================' )
29
+ '-----------------------------'
30
+ """
@@ -1,88 +1,88 @@
1
- Feature: Running a full test instance test
2
- In order to "fire-and-forget" or run help setup a CI job
3
- As an operator or CI script
4
- I want to run a command that will fully test one or more instances
5
-
6
- Background:
7
- Given a file named ".kitchen.yml" with:
8
- """
9
- ---
10
- driver:
11
- name: dummy
12
-
13
- provisioner:
14
- name: dummy
15
-
16
- platforms:
17
- - name: cool
18
- - name: beans
19
-
20
- suites:
21
- - name: client
22
- - name: server
23
- """
24
-
25
- @spawn
26
- Scenario: Running a single instance
27
- When I run `kitchen test client-beans`
28
- Then the output should contain "Starting Kitchen"
29
- Then the output should contain "Cleaning up any prior instances of <client-beans>"
30
- Then the output should contain "Testing <client-beans>"
31
- Then the output should contain "Finished testing <client-beans>"
32
- Then the output should contain "Kitchen is finished."
33
- And the exit status should be 0
34
-
35
- @spawn
36
- Scenario: Running a single instance never destroying an instance
37
- When I successfully run `kitchen test client-beans --destroy=never`
38
- And I successfully run `kitchen list client-beans`
39
- Then the output should match /^client-beans\s+.+\s+Verified$/
40
-
41
- @spawn
42
- Scenario: Running a single instance always destroying an instance
43
- Given a file named ".kitchen.local.yml" with:
44
- """
45
- ---
46
- provisioner:
47
- fail: true
48
- """
49
- When I run `kitchen test client-beans --destroy=always`
50
- Then the exit status should not be 0
51
- When I successfully run `kitchen list client-beans`
52
- Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
53
-
54
- @spawn
55
- Scenario: Running a single instance not destroying an instance on failure
56
- Given a file named ".kitchen.local.yml" with:
57
- """
58
- ---
59
- provisioner:
60
- fail: true
61
- """
62
- When I run `kitchen test client-beans --destroy=passing`
63
- Then the exit status should not be 0
64
- When I successfully run `kitchen list client-beans`
65
- Then the output should match /^client-beans\s+.+\s+Created$/
66
-
67
- @spawn
68
- Scenario: Running a single instance destroying an instance on success
69
- When I run `kitchen test client-beans --destroy=passing`
70
- Then the exit status should be 0
71
- When I successfully run `kitchen list client-beans`
72
- Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
73
-
74
- @spawn
75
- Scenario: Running all instances
76
- When I run `kitchen test`
77
- Then the output should contain "Starting Kitchen"
78
- Then the output should contain "Finished testing <client-cool>"
79
- Then the output should contain "Finished testing <client-beans>"
80
- Then the output should contain "Finished testing <server-cool>"
81
- Then the output should contain "Finished testing <server-beans>"
82
- Then the output should contain "Kitchen is finished."
83
- And the exit status should be 0
84
- When I successfully run `kitchen list`
85
- Then the output should match /^client-cool\s+.+\s+\<Not Created\>$/
86
- Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
87
- Then the output should match /^server-cool\s+.+\s+\<Not Created\>$/
88
- Then the output should match /^server-beans\s+.+\s+\<Not Created\>$/
1
+ Feature: Running a full test instance test
2
+ In order to "fire-and-forget" or run help setup a CI job
3
+ As an operator or CI script
4
+ I want to run a command that will fully test one or more instances
5
+
6
+ Background:
7
+ Given a file named ".kitchen.yml" with:
8
+ """
9
+ ---
10
+ driver:
11
+ name: dummy
12
+
13
+ provisioner:
14
+ name: dummy
15
+
16
+ platforms:
17
+ - name: cool
18
+ - name: beans
19
+
20
+ suites:
21
+ - name: client
22
+ - name: server
23
+ """
24
+
25
+ @spawn
26
+ Scenario: Running a single instance
27
+ When I run `kitchen test client-beans`
28
+ Then the output should contain "Starting Kitchen"
29
+ Then the output should contain "Cleaning up any prior instances of <client-beans>"
30
+ Then the output should contain "Testing <client-beans>"
31
+ Then the output should contain "Finished testing <client-beans>"
32
+ Then the output should contain "Kitchen is finished."
33
+ And the exit status should be 0
34
+
35
+ @spawn
36
+ Scenario: Running a single instance never destroying an instance
37
+ When I successfully run `kitchen test client-beans --destroy=never`
38
+ And I successfully run `kitchen list client-beans`
39
+ Then the output should match /^client-beans\s+.+\s+Verified$/
40
+
41
+ @spawn
42
+ Scenario: Running a single instance always destroying an instance
43
+ Given a file named ".kitchen.local.yml" with:
44
+ """
45
+ ---
46
+ provisioner:
47
+ fail: true
48
+ """
49
+ When I run `kitchen test client-beans --destroy=always`
50
+ Then the exit status should not be 0
51
+ When I successfully run `kitchen list client-beans`
52
+ Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
53
+
54
+ @spawn
55
+ Scenario: Running a single instance not destroying an instance on failure
56
+ Given a file named ".kitchen.local.yml" with:
57
+ """
58
+ ---
59
+ provisioner:
60
+ fail: true
61
+ """
62
+ When I run `kitchen test client-beans --destroy=passing`
63
+ Then the exit status should not be 0
64
+ When I successfully run `kitchen list client-beans`
65
+ Then the output should match /^client-beans\s+.+\s+Created$/
66
+
67
+ @spawn
68
+ Scenario: Running a single instance destroying an instance on success
69
+ When I run `kitchen test client-beans --destroy=passing`
70
+ Then the exit status should be 0
71
+ When I successfully run `kitchen list client-beans`
72
+ Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
73
+
74
+ @spawn
75
+ Scenario: Running all instances
76
+ When I run `kitchen test`
77
+ Then the output should contain "Starting Kitchen"
78
+ Then the output should contain "Finished testing <client-cool>"
79
+ Then the output should contain "Finished testing <client-beans>"
80
+ Then the output should contain "Finished testing <server-cool>"
81
+ Then the output should contain "Finished testing <server-beans>"
82
+ Then the output should contain "Kitchen is finished."
83
+ And the exit status should be 0
84
+ When I successfully run `kitchen list`
85
+ Then the output should match /^client-cool\s+.+\s+\<Not Created\>$/
86
+ Then the output should match /^client-beans\s+.+\s+\<Not Created\>$/
87
+ Then the output should match /^server-cool\s+.+\s+\<Not Created\>$/
88
+ Then the output should match /^server-beans\s+.+\s+\<Not Created\>$/