test-kitchen 1.6.0 → 1.7.0

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 (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
@@ -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\>$/