aruba 0.14.9 → 1.0.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 (309) hide show
  1. checksums.yaml +4 -4
  2. data/.cucumberproignore +3 -0
  3. data/.github/ISSUE_TEMPLATE.md +48 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +41 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +1 -1
  7. data/.rubocop.yml +20 -179
  8. data/.rubocop_todo.yml +262 -0
  9. data/.simplecov +7 -5
  10. data/.travis.yml +54 -46
  11. data/.yardopts +3 -0
  12. data/CHANGELOG.md +613 -246
  13. data/CONTRIBUTING.md +247 -45
  14. data/Dockerfile +67 -0
  15. data/Gemfile +5 -96
  16. data/LICENSE +1 -1
  17. data/README.md +57 -180
  18. data/Rakefile +63 -32
  19. data/appveyor.yml +8 -11
  20. data/aruba.gemspec +47 -41
  21. data/bin/console +7 -0
  22. data/bin/test +9 -0
  23. data/cucumber.yml +4 -24
  24. data/doc/dependency_decisions.yml +42 -2
  25. data/docker-compose.yml +26 -0
  26. data/{bin → exe}/aruba +1 -1
  27. data/fixtures/cli-app/Rakefile +1 -1
  28. data/fixtures/cli-app/bin/aruba-test-cli +6 -0
  29. data/fixtures/cli-app/cli-app.gemspec +1 -2
  30. data/fixtures/cli-app/features/support/aruba.rb +1 -0
  31. data/fixtures/cli-app/features/support/env.rb +1 -1
  32. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
  33. data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
  34. data/fixtures/cli-app/lib/cli/app.rb +1 -5
  35. data/fixtures/cli-app/spec/spec_helper.rb +4 -6
  36. data/fixtures/empty-app/Rakefile +1 -1
  37. data/fixtures/empty-app/cli-app.gemspec +1 -2
  38. data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
  39. data/fixtures/empty-app/lib/cli/app.rb +0 -6
  40. data/fixtures/getting-started-app/Gemfile +1 -1
  41. data/lib/aruba/api/commands.rb +109 -143
  42. data/lib/aruba/api/core.rb +57 -43
  43. data/lib/aruba/api/environment.rb +16 -7
  44. data/lib/aruba/api/filesystem.rb +42 -29
  45. data/lib/aruba/api/text.rb +3 -9
  46. data/lib/aruba/api.rb +6 -11
  47. data/lib/aruba/aruba_path.rb +27 -89
  48. data/lib/aruba/basic_configuration.rb +4 -24
  49. data/lib/aruba/cli.rb +1 -1
  50. data/lib/aruba/colorizer.rb +10 -99
  51. data/lib/aruba/command.rb +2 -0
  52. data/lib/aruba/config/jruby.rb +15 -5
  53. data/lib/aruba/config_wrapper.rb +1 -1
  54. data/lib/aruba/configuration.rb +92 -0
  55. data/lib/aruba/console/help.rb +1 -7
  56. data/lib/aruba/console.rb +5 -5
  57. data/lib/aruba/contracts/absolute_path.rb +2 -2
  58. data/lib/aruba/contracts/relative_path.rb +2 -2
  59. data/lib/aruba/cucumber/command.rb +171 -160
  60. data/lib/aruba/cucumber/environment.rb +1 -1
  61. data/lib/aruba/cucumber/file.rb +21 -35
  62. data/lib/aruba/cucumber/hooks.rb +17 -56
  63. data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
  64. data/lib/aruba/cucumber.rb +0 -5
  65. data/lib/aruba/event_bus/name_resolver.rb +5 -16
  66. data/lib/aruba/hooks.rb +1 -1
  67. data/lib/aruba/in_config_wrapper.rb +5 -1
  68. data/lib/aruba/initializer.rb +36 -42
  69. data/lib/aruba/matchers/base/base_matcher.rb +2 -2
  70. data/lib/aruba/matchers/base/message_indenter.rb +19 -0
  71. data/lib/aruba/matchers/base/object_formatter.rb +2 -9
  72. data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
  73. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  74. data/lib/aruba/matchers/command/have_exit_status.rb +14 -4
  75. data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -5
  76. data/lib/aruba/matchers/command/have_output.rb +10 -5
  77. data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -2
  78. data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -2
  79. data/lib/aruba/matchers/command/have_output_size.rb +2 -2
  80. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +5 -7
  81. data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
  82. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
  83. data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
  84. data/lib/aruba/matchers/file/be_an_existing_file.rb +5 -7
  85. data/lib/aruba/matchers/file/have_file_content.rb +4 -4
  86. data/lib/aruba/matchers/file/have_file_size.rb +6 -8
  87. data/lib/aruba/matchers/file/have_same_file_content.rb +5 -8
  88. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
  89. data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
  90. data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
  91. data/lib/aruba/matchers/path/have_permissions.rb +6 -8
  92. data/lib/aruba/matchers/string/include_output_string.rb +8 -10
  93. data/lib/aruba/matchers/string/match_output_string.rb +9 -11
  94. data/lib/aruba/matchers/string/output_string_eq.rb +7 -9
  95. data/lib/aruba/platform.rb +0 -8
  96. data/lib/aruba/platforms/announcer.rb +42 -79
  97. data/lib/aruba/platforms/aruba_file_creator.rb +2 -6
  98. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
  99. data/lib/aruba/platforms/aruba_logger.rb +23 -7
  100. data/lib/aruba/platforms/command_monitor.rb +12 -107
  101. data/lib/aruba/platforms/determine_disk_usage.rb +56 -14
  102. data/lib/aruba/platforms/filesystem_status.rb +10 -14
  103. data/lib/aruba/platforms/local_environment.rb +2 -2
  104. data/lib/aruba/platforms/simple_table.rb +3 -11
  105. data/lib/aruba/platforms/unix_command_string.rb +7 -11
  106. data/lib/aruba/platforms/unix_environment_variables.rb +18 -27
  107. data/lib/aruba/platforms/unix_platform.rb +20 -51
  108. data/lib/aruba/platforms/unix_which.rb +2 -1
  109. data/lib/aruba/platforms/windows_command_string.rb +15 -10
  110. data/lib/aruba/platforms/windows_environment_variables.rb +43 -44
  111. data/lib/aruba/platforms/windows_platform.rb +4 -0
  112. data/lib/aruba/platforms/windows_which.rb +4 -3
  113. data/lib/aruba/processes/basic_process.rb +28 -30
  114. data/lib/aruba/processes/debug_process.rb +12 -3
  115. data/lib/aruba/processes/in_process.rb +17 -8
  116. data/lib/aruba/processes/spawn_process.rb +57 -46
  117. data/lib/aruba/rspec.rb +14 -36
  118. data/lib/aruba/runtime.rb +3 -6
  119. data/lib/aruba/setup.rb +6 -6
  120. data/lib/aruba/tasks/docker_helpers.rb +154 -0
  121. data/lib/aruba/version.rb +1 -1
  122. metadata +191 -244
  123. data/features/.nav +0 -72
  124. data/features/api/command/find_command.feature +0 -83
  125. data/features/api/command/last_command_started.feature +0 -50
  126. data/features/api/command/last_command_stopped.feature +0 -89
  127. data/features/api/command/run.feature +0 -414
  128. data/features/api/command/run_simple.feature +0 -242
  129. data/features/api/command/send_signal.feature +0 -53
  130. data/features/api/command/stderr.feature +0 -46
  131. data/features/api/command/stdout.feature +0 -46
  132. data/features/api/command/stop.feature +0 -131
  133. data/features/api/command/stop_all_commands.feature +0 -53
  134. data/features/api/command/terminate_all_commands.feature +0 -53
  135. data/features/api/command/which.feature +0 -37
  136. data/features/api/core/expand_path.feature +0 -88
  137. data/features/api/environment/append_environment_variable.feature +0 -128
  138. data/features/api/environment/delete_environment_variable.feature +0 -63
  139. data/features/api/environment/prepend_environment_variable.feature +0 -128
  140. data/features/api/environment/set_environment_variable.feature +0 -376
  141. data/features/api/filesystem/cd.feature +0 -184
  142. data/features/api/filesystem/create_directory.feature +0 -57
  143. data/features/api/filesystem/disk_usage.feature +0 -152
  144. data/features/api/filesystem/does_exist.feature +0 -62
  145. data/features/api/filesystem/fixtures.feature +0 -104
  146. data/features/api/filesystem/is_absolute.feature +0 -48
  147. data/features/api/filesystem/is_directory.feature +0 -53
  148. data/features/api/filesystem/is_file.feature +0 -54
  149. data/features/api/filesystem/is_relative.feature +0 -48
  150. data/features/api/filesystem/move.feature +0 -119
  151. data/features/api/text/extract_text.feature +0 -87
  152. data/features/api/text/replace_variables.feature +0 -45
  153. data/features/api/text/sanitize_text.feature +0 -228
  154. data/features/api/text/unescape_text.feature +0 -127
  155. data/features/cli/console.feature +0 -52
  156. data/features/cli/init.feature +0 -79
  157. data/features/configuration/activate_announcer_on_command_failure.feature +0 -38
  158. data/features/configuration/command_runtime_environment.feature +0 -129
  159. data/features/configuration/console_history_file.feature +0 -38
  160. data/features/configuration/exit_timeout.feature +0 -52
  161. data/features/configuration/fixtures_directories.feature +0 -38
  162. data/features/configuration/fixtures_path_prefix.feature +0 -23
  163. data/features/configuration/home_directory.feature +0 -80
  164. data/features/configuration/io_timeout.feature +0 -30
  165. data/features/configuration/keep_ansi.feature +0 -30
  166. data/features/configuration/log_level.feature +0 -38
  167. data/features/configuration/physical_block_size.feature +0 -53
  168. data/features/configuration/remove_ansi_escape_sequences.feature +0 -38
  169. data/features/configuration/root_directory.feature +0 -30
  170. data/features/configuration/startup_wait_time.feature +0 -48
  171. data/features/configuration/usage.feature +0 -159
  172. data/features/configuration/working_directory.feature +0 -33
  173. data/features/development/build.feature +0 -15
  174. data/features/getting_started/cleanup.feature +0 -58
  175. data/features/getting_started/run_commands.feature +0 -187
  176. data/features/getting_started/supported_testing_frameworks.feature +0 -104
  177. data/features/getting_started/writing_good_feature_tests.feature +0 -38
  178. data/features/hooks/after/command.feature +0 -46
  179. data/features/hooks/before/command.feature +0 -75
  180. data/features/matchers/collection/include_an_object.feature +0 -72
  181. data/features/matchers/directory/have_sub_directory.feature +0 -110
  182. data/features/matchers/file/be_a_command_found_in_path.feature +0 -115
  183. data/features/matchers/file/be_existing_executable.feature +0 -88
  184. data/features/matchers/file/be_existing_file.feature +0 -82
  185. data/features/matchers/file/have_file_content.feature +0 -123
  186. data/features/matchers/file/have_file_size.feature +0 -107
  187. data/features/matchers/path/be_an_absolute_path.feature +0 -74
  188. data/features/matchers/path/be_an_existing_path.feature +0 -97
  189. data/features/matchers/path/have_permissions.feature +0 -118
  190. data/features/matchers/timeouts.feature +0 -48
  191. data/features/platforms/jruby.feature +0 -14
  192. data/features/rspec/integration.feature +0 -179
  193. data/features/step_definitions/aruba_dev_steps.rb +0 -56
  194. data/features/step_definitions/hooks.rb +0 -156
  195. data/features/steps/command/debug.feature +0 -92
  196. data/features/steps/command/exit_statuses.feature +0 -136
  197. data/features/steps/command/in_process.feature +0 -485
  198. data/features/steps/command/interactive.feature +0 -90
  199. data/features/steps/command/output.feature +0 -567
  200. data/features/steps/command/run.feature +0 -66
  201. data/features/steps/command/send_signal.feature +0 -104
  202. data/features/steps/command/shell.feature +0 -155
  203. data/features/steps/command/stderr.feature +0 -68
  204. data/features/steps/command/stdout.feature +0 -109
  205. data/features/steps/command/stop.feature +0 -313
  206. data/features/steps/core/announce.feature +0 -283
  207. data/features/steps/environment/append_environment_variable.feature +0 -52
  208. data/features/steps/environment/disable_bunder.feature +0 -18
  209. data/features/steps/environment/home_variable.feature +0 -62
  210. data/features/steps/environment/prepend_environment_variable.feature +0 -52
  211. data/features/steps/environment/set_environment_variable.feature +0 -49
  212. data/features/steps/filesystem/append_to_file.feature +0 -45
  213. data/features/steps/filesystem/cd_to_directory.feature +0 -33
  214. data/features/steps/filesystem/check_file_content.feature +0 -61
  215. data/features/steps/filesystem/check_permissions_of_file.feature +0 -39
  216. data/features/steps/filesystem/compare_files.feature +0 -42
  217. data/features/steps/filesystem/copy.feature +0 -45
  218. data/features/steps/filesystem/create_directory.feature +0 -57
  219. data/features/steps/filesystem/create_file.feature +0 -76
  220. data/features/steps/filesystem/existence_of_directory.feature +0 -57
  221. data/features/steps/filesystem/existence_of_file.feature +0 -43
  222. data/features/steps/filesystem/file_content.feature +0 -86
  223. data/features/steps/filesystem/fixtures.feature +0 -64
  224. data/features/steps/filesystem/move.feature +0 -45
  225. data/features/steps/filesystem/non_existence_of_directory.feature +0 -69
  226. data/features/steps/filesystem/non_existence_of_file.feature +0 -80
  227. data/features/steps/filesystem/overwrite_file.feature +0 -72
  228. data/features/steps/filesystem/remove_directory.feature +0 -38
  229. data/features/steps/filesystem/remove_file.feature +0 -38
  230. data/features/steps/filesystem/use_fixture.feature +0 -77
  231. data/features/steps/overview.feature +0 -25
  232. data/features/support/aruba.rb +0 -7
  233. data/features/support/env.rb +0 -33
  234. data/features/support/jruby.rb +0 -5
  235. data/features/support/simplecov_setup.rb +0 -8
  236. data/fixtures/cli-app/bin/cli +0 -6
  237. data/fixtures/spawn_process/stderr.sh +0 -3
  238. data/lib/aruba/api/deprecated.rb +0 -1234
  239. data/lib/aruba/config.rb +0 -107
  240. data/lib/aruba/cucumber/core.rb +0 -5
  241. data/lib/aruba/cucumber/rvm.rb +0 -3
  242. data/lib/aruba/in_process.rb +0 -14
  243. data/lib/aruba/jruby.rb +0 -4
  244. data/lib/aruba/matchers/deprecated/file.rb +0 -17
  245. data/lib/aruba/matchers/deprecated.rb +0 -1
  246. data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
  247. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
  248. data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
  249. data/lib/aruba/reporting.rb +0 -126
  250. data/lib/aruba/spawn_process.rb +0 -11
  251. data/script/bootstrap +0 -28
  252. data/script/console +0 -16
  253. data/script/test +0 -3
  254. data/spec/aruba/api/bundler_spec.rb +0 -15
  255. data/spec/aruba/api/deprecated_spec.rb +0 -308
  256. data/spec/aruba/api/environment/restore_env_spec.rb +0 -86
  257. data/spec/aruba/api/environment/set_env_spec.rb +0 -46
  258. data/spec/aruba/api/filesystem/file_size_spec.rb +0 -28
  259. data/spec/aruba/api/runtime_spec.rb +0 -28
  260. data/spec/aruba/api_spec.rb +0 -981
  261. data/spec/aruba/aruba_path_spec.rb +0 -103
  262. data/spec/aruba/basic_configuration_spec.rb +0 -5
  263. data/spec/aruba/configuration_spec.rb +0 -5
  264. data/spec/aruba/hooks_spec.rb +0 -17
  265. data/spec/aruba/in_config_wrapper_spec.rb +0 -25
  266. data/spec/aruba/jruby_spec.rb +0 -55
  267. data/spec/aruba/matchers/command/have_output_size_spec.rb +0 -25
  268. data/spec/aruba/matchers/command_spec.rb +0 -174
  269. data/spec/aruba/matchers/deprecated_spec.rb +0 -120
  270. data/spec/aruba/matchers/directory_spec.rb +0 -57
  271. data/spec/aruba/matchers/file_spec.rb +0 -208
  272. data/spec/aruba/matchers/path_spec.rb +0 -58
  273. data/spec/aruba/platform/simple_table_spec.rb +0 -23
  274. data/spec/aruba/platform/windows_environment_variables_spec.rb +0 -500
  275. data/spec/aruba/platforms/unix_command_string_spec.rb +0 -17
  276. data/spec/aruba/platforms/windows_command_string_spec.rb +0 -22
  277. data/spec/aruba/rspec_spec.rb +0 -15
  278. data/spec/aruba/runtime_spec.rb +0 -29
  279. data/spec/aruba/spawn_process_spec.rb +0 -96
  280. data/spec/event_bus/name_resolver_spec.rb +0 -68
  281. data/spec/event_bus_spec.rb +0 -158
  282. data/spec/spec_helper.rb +0 -20
  283. data/spec/support/configs/.keep +0 -0
  284. data/spec/support/configs/aruba.rb +0 -5
  285. data/spec/support/configs/pry.rb +0 -3
  286. data/spec/support/configs/rspec.rb +0 -15
  287. data/spec/support/helpers/.keep +0 -0
  288. data/spec/support/helpers/reporting.rb +0 -44
  289. data/spec/support/matchers/.keep +0 -0
  290. data/spec/support/matchers/option.rb +0 -35
  291. data/spec/support/shared_contexts/.keep +0 -0
  292. data/spec/support/shared_contexts/aruba.rb +0 -49
  293. data/spec/support/shared_examples/.keep +0 -0
  294. data/spec/support/shared_examples/configuration.rb +0 -116
  295. data/spec/support/shared_examples/directory.rb +0 -7
  296. data/spec/support/shared_examples/file.rb +0 -7
  297. data/templates/css/console.css +0 -24
  298. data/templates/css/filesystem.css +0 -42
  299. data/templates/css/pygments-autumn.css +0 -59
  300. data/templates/files.erb +0 -14
  301. data/templates/images/LICENSE +0 -22
  302. data/templates/images/folder.png +0 -0
  303. data/templates/images/page_white.png +0 -0
  304. data/templates/images/page_white_gherkin.png +0 -0
  305. data/templates/images/page_white_ruby.png +0 -0
  306. data/templates/index.erb +0 -20
  307. data/templates/js/filesystem.js +0 -5
  308. data/templates/js/jquery-1.11.3.min.js +0 -5
  309. data/templates/main.erb +0 -34
@@ -1,159 +0,0 @@
1
- Feature: Usage of configuration
2
-
3
- You can configure `aruba` in two ways:
4
-
5
- 1. Using `Aruba.configure`-block
6
- 2. Using `aruba.config.<option> = <value>`
7
-
8
- The first (1.) should be used to set defaults for ALL your tests. It changes
9
- values on loadtime. The latter (2.) should be used to change options only for
10
- specific tests during runtime. `aruba.config` contains the runtime
11
- configuration of aruba which is reset to the loadtime configuration before
12
- each test is run.
13
-
14
- Background:
15
- Given I use a fixture named "cli-app"
16
- And an executable named "bin/cli" with:
17
- """bash
18
- #!/bin/bash
19
- trap "exit 128" SIGTERM SIGINT
20
- sleep $*
21
- """
22
-
23
- Scenario: Setting default values for option for RSpec
24
- Given a file named "spec/support/aruba.rb" with:
25
- """ruby
26
- require 'aruba/rspec'
27
-
28
- Aruba.configure do |config|
29
- config.exit_timeout = 1
30
- end
31
- """
32
- And a file named "spec/usage_configuration_spec.rb" with:
33
- """ruby
34
- require 'spec_helper'
35
-
36
- RSpec.describe 'Run command', :type => :aruba do
37
- context 'when fast command' do
38
- before(:each) { run_command('cli 0') }
39
- it { expect(last_command_started).to be_successfully_executed }
40
- end
41
-
42
- context 'when slow command' do
43
- before(:each) { run_command('cli 2') }
44
- it { expect(last_command_started).not_to be_successfully_executed }
45
- end
46
- end
47
- """
48
- When I run `rspec`
49
- Then the specs should all pass
50
-
51
- Scenario: Setting option during runtime for RSpec
52
-
53
- Maybe there are some long running tests, which need longer. You may not
54
- want to set the default timeout for all commands to the maximum value only
55
- to prevent those commands from failing.
56
-
57
- Given a file named "spec/support/aruba.rb" with:
58
- """ruby
59
- require 'aruba/rspec'
60
-
61
- Aruba.configure do |config|
62
- config.exit_timeout = 1
63
- end
64
- """
65
- And a file named "spec/support/hooks.rb" with:
66
- """ruby
67
- RSpec.configure do |config|
68
- config.before :each do |example|
69
- next unless example.metadata.key? :slow_command
70
-
71
- aruba.config.exit_timeout = 5
72
- end
73
- end
74
- """
75
- And a file named "spec/usage_configuration_spec.rb" with:
76
- """ruby
77
- require 'spec_helper'
78
-
79
- RSpec.describe 'Run command', :type => :aruba do
80
- context 'when fast command' do
81
- before(:each) { run_command('cli 0') }
82
- it { expect(last_command_started).to be_successfully_executed }
83
- end
84
-
85
- context 'when slow command and this is known by the developer', :slow_command => true do
86
- before(:each) { run_command('cli 2') }
87
- it { expect(last_command_started).to be_successfully_executed }
88
- end
89
-
90
- context 'when slow command, but this might be a failure' do
91
- before(:each) { run_command('cli 2') }
92
- it { expect(last_command_started).not_to be_successfully_executed }
93
- end
94
- end
95
- """
96
- When I run `rspec`
97
- Then the specs should all pass
98
-
99
- Scenario: Setting default values for option for Cucumber
100
- Given a file named "features/support/aruba.rb" with:
101
- """ruby
102
- require 'aruba/cucumber'
103
-
104
- Aruba.configure do |config|
105
- config.exit_timeout = 1
106
- end
107
- """
108
- And a file named "features/run.feature" with:
109
- """
110
- Feature: Run it
111
- Scenario: Fast command
112
- When I run `cli 0`
113
- Then the exit status should be 0
114
-
115
- Scenario: Slow command
116
- When I run `cli 2`
117
- Then the exit status should be 128
118
- """
119
- When I run `cucumber`
120
- Then the features should all pass
121
-
122
- Scenario: Setting option during runtime for Cucumber
123
-
124
- Maybe there are some long running tests, which need longer. You may not
125
- want to set the default timeout for all commands to the maximum value only
126
- to prevent those commands from failing.
127
-
128
- Given a file named "features/support/aruba.rb" with:
129
- """ruby
130
- require 'aruba/cucumber'
131
-
132
- Aruba.configure do |config|
133
- config.exit_timeout = 1
134
- end
135
- """
136
- And a file named "features/support/hooks.rb" with:
137
- """ruby
138
- Before '@slow-command' do
139
- aruba.config.exit_timeout = 5
140
- end
141
- """
142
- And a file named "features/usage_configuration.feature" with:
143
- """
144
- Feature: Run it
145
- Scenario: Fast command
146
- When I run `cli 0`
147
- Then the exit status should be 0
148
-
149
- @slow-command
150
- Scenario: Slow command known by the developer
151
- When I run `cli 2`
152
- Then the exit status should be 0
153
-
154
- Scenario: Slow command which might be a failure
155
- When I run `cli 3`
156
- Then the exit status should be 128
157
- """
158
- When I run `cucumber`
159
- Then the features should all pass
@@ -1,33 +0,0 @@
1
- Feature: Configure working directory of aruba
2
-
3
- As a developer
4
- I want to configure the working directory of aruba
5
- In order to have a test directory for each used spec runner - e.g. cucumber or rspec
6
-
7
- Background:
8
- Given I use the fixture "cli-app"
9
-
10
- Scenario: Default value
11
- Given a file named "features/support/aruba.rb" with:
12
- """
13
- Aruba.configure do |config|
14
- puts %(The default value is "#{config.working_directory}")
15
- end
16
- """
17
- When I successfully run `cucumber`
18
- Then the output should contain:
19
- """
20
- The default value is "tmp/aruba"
21
- """
22
-
23
- Scenario: Modify value
24
- Given a file named "features/support/aruba.rb" with:
25
- """
26
- Aruba.configure do |config|
27
- config.working_directory = 'tmp/cucumber'
28
- end
29
- """
30
- And the default feature-test
31
- And the default executable
32
- When I successfully run `cucumber`
33
- Then a directory named "tmp/cucumber" should exist
@@ -1,15 +0,0 @@
1
- Feature: Build Aruba Gem
2
-
3
- As a aruba developer
4
- I want to build the `aruba` gem
5
- In order to install it
6
-
7
- Scenario: Building aruba using rake task
8
-
9
- To build the `aruba`-gem you can use the `build`-rake task.
10
-
11
- Given I successfully run `rake -T build`
12
- Then the output should contain:
13
- """
14
- build
15
- """
@@ -1,58 +0,0 @@
1
- Feature: Cleanup Aruba Working Directory
2
-
3
- By default Aruba removes its scratch directory before
4
- every scenario. This isn't always the right thing
5
- to do, especially when the path to the default directory
6
- has been changed. Use @no-clobber to stop Aruba from
7
- cleaning up after itself.
8
-
9
- Background:
10
- Given I use a fixture named "cli-app"
11
-
12
- Scenario: Clean up artifacts and pwd from a previous scenario
13
- Given a file named "features/cleanup.feature" with:
14
- """
15
- Feature: Check
16
- Scenario: Check #1
17
- Given a file named "file.txt" with "content"
18
- And a directory named "dir.d"
19
- Then a file named "file.txt" should exist
20
- And a directory named "dir.d" should exist
21
- When I cd to "dir.d"
22
- And I run `pwd`
23
- Then the output should match %r</tmp/aruba/dir.d$>
24
-
25
- Scenario: Check #2
26
- Then a file named "file.txt" should not exist
27
- And a directory named "dir.d" should not exist
28
- When I run `pwd`
29
- Then the output should match %r</tmp/aruba$>
30
- """
31
- When I run `cucumber`
32
- Then the features should all pass
33
-
34
- Scenario: Do not clobber before run
35
- The `@no-clobber` tag stops Aruba from clearing out its scratch directory.
36
- Other setup steps are still performed, such as setting the current working
37
- directory.
38
-
39
- Given a file named "tmp/aruba/file.txt" with "content"
40
- And a directory named "tmp/aruba/dir.d"
41
- And a file named "features/cleanup.feature" with:
42
- """
43
- Feature: Check
44
- Scenario: Check #1
45
- Given a file named "file.txt" with "content"
46
- And a directory named "dir.d"
47
- Then a file named "file.txt" should exist
48
- And a directory named "dir.d" should exist
49
-
50
- @no-clobber
51
- Scenario: Check #2
52
- Then a file named "file.txt" should exist
53
- And a directory named "dir.d" should exist
54
- When I run `pwd`
55
- Then the output should match %r</tmp/aruba$>
56
- """
57
- When I run `cucumber`
58
- Then the features should all pass
@@ -1,187 +0,0 @@
1
- Feature: Run commands with Aruba
2
-
3
- As long as you've got the neccessary programs, libraries, runtime
4
- environments, interpreters installed, it doesn't matter in which programming
5
- language your commandline application is implemented. You can even use POSIX
6
- standard tools like "printf".
7
-
8
- Below you find some examples of the "Hello, Aruba!"-application implemented
9
- with different programming languages and a single example for a POSIX
10
- standard tool. This is NOT an exclusive list. Every commandline application
11
- should run with `aruba`.
12
-
13
- Background:
14
- Given I use a fixture named "getting-started-app"
15
- And a file named "features/hello_aruba.feature" with:
16
- """
17
- Feature: Getting Started With Aruba
18
- Scenario: First Run of Command
19
- Given I successfully run `cli`
20
- Then the output should contain:
21
- \"\"\"
22
- Hello, Aruba!
23
- \"\"\"
24
- """
25
-
26
- @requires-bash
27
- Scenario: Bash Program
28
- Given an executable named "bin/cli" with:
29
- """bash
30
- #!/usr/bin/env bash
31
-
32
- echo "Hello, Aruba!"
33
- """
34
- When I successfully run `cucumber`
35
- Then the features should all pass
36
-
37
- @requires-bash
38
- Scenario: Bash Program run via bash
39
- Given a file named "features/hello_aruba.feature" with:
40
- """
41
- Feature: Getting Started With Aruba
42
- Scenario: First Run of Command
43
- Given a file named "cli.sh" with:
44
- \"\"\"
45
- echo "Hello, Aruba!"
46
- \"\"\"
47
- When I successfully run `bash ./cli.sh`
48
- Then the output should contain:
49
- \"\"\"
50
- Hello, Aruba!
51
- \"\"\"
52
- """
53
- When I successfully run `cucumber`
54
- Then the features should all pass
55
-
56
- @requires-ruby
57
- Scenario: Ruby Program
58
- Given an executable named "bin/cli" with:
59
- """ruby
60
- #!/usr/bin/env ruby
61
-
62
- puts "Hello, Aruba!"
63
- """
64
- When I successfully run `cucumber`
65
- Then the features should all pass
66
-
67
- @requires-ruby
68
- Scenario: Ruby Program via "ruby"
69
- Given a file named "features/hello_aruba.feature" with:
70
- """
71
- Feature: Getting Started With Aruba
72
- Scenario: First Run of Command
73
- Given a file named "cli.rb" with:
74
- \"\"\"
75
- puts "Hello, Aruba!"
76
- \"\"\"
77
- When I successfully run `ruby ./cli.rb`
78
- Then the output should contain:
79
- \"\"\"
80
- Hello, Aruba!
81
- \"\"\"
82
- """
83
- When I successfully run `cucumber`
84
- Then the features should all pass
85
-
86
- @requires-python
87
- Scenario: Python Program
88
- Given an executable named "bin/cli" with:
89
- """python
90
- #!/usr/bin/env python
91
-
92
- print("Hello, Aruba!")
93
- """
94
- When I successfully run `cucumber`
95
- Then the features should all pass
96
-
97
- @requires-python
98
- Scenario: Python Program via "python"
99
- Given a file named "features/hello_aruba.feature" with:
100
- """
101
- Feature: Getting Started With Aruba
102
- Scenario: First Run of Command
103
- Given a file named "cli.py" with:
104
- \"\"\"
105
- print("Hello, Aruba!")
106
- \"\"\"
107
- When I successfully run `python ./cli.py`
108
- Then the output should contain:
109
- \"\"\"
110
- Hello, Aruba!
111
- \"\"\"
112
- """
113
- When I successfully run `cucumber`
114
- Then the features should all pass
115
-
116
- @requires-perl
117
- Scenario: Perl Program
118
- Given an executable named "bin/cli" with:
119
- """perl
120
- #!/usr/bin/env perl
121
-
122
- print "Hello, Aruba!\n";
123
- """
124
- When I successfully run `cucumber`
125
- Then the features should all pass
126
-
127
- @requires-perl
128
- Scenario: Perl Program via "perl"
129
- Given a file named "features/hello_aruba.feature" with:
130
- """
131
- Feature: Getting Started With Aruba
132
- Scenario: First Run of Command
133
- Given a file named "cli.pl" with:
134
- \"\"\"perl
135
- print "Hello, Aruba!\n";
136
- \"\"\"
137
- When I successfully run `perl ./cli.pl`
138
- Then the output should contain:
139
- \"\"\"
140
- Hello, Aruba!
141
- \"\"\"
142
- """
143
- When I successfully run `cucumber`
144
- Then the features should all pass
145
-
146
- @requires-java
147
- Scenario: Java Program
148
-
149
- It's even possible to compile and run Java programs with Aruba.
150
-
151
- Given a file named "features/hello_aruba.feature" with:
152
- """cucumber
153
- Feature: Getting Started With Aruba
154
- Scenario: First Run of Command
155
- Given a file named "tmp/HelloArubaApp.java" with:
156
- \"\"\"
157
- class HelloArubaApp {
158
- public static void main(String[] args) {
159
- System.out.println("Hello, Aruba!");
160
- }
161
- }
162
- \"\"\"
163
- And I successfully run `javac tmp/HelloArubaApp.java`
164
- And I cd to "tmp/"
165
- And I successfully run `java HelloArubaApp`
166
- Then the output should contain:
167
- \"\"\"
168
- Hello, Aruba!
169
- \"\"\"
170
- """
171
- When I successfully run `cucumber`
172
- Then the features should all pass
173
-
174
- @requires-posix-standard-tools
175
- Scenario: POSIX standard tools
176
- Given a file named "features/hello_aruba.feature" with:
177
- """
178
- Feature: Getting Started With Aruba
179
- Scenario: First Run of Command
180
- Given I successfully run `printf "%s" "Hello, Aruba!"`
181
- Then the output should contain:
182
- \"\"\"
183
- Hello, Aruba!
184
- \"\"\"
185
- """
186
- When I successfully run `cucumber`
187
- Then the features should all pass
@@ -1,104 +0,0 @@
1
- Feature: Supported Testing Frameworks
2
-
3
- You can use `aruba` with all major testing frameworks from the Ruby World:
4
-
5
- \* Cucumber
6
- \* RSpec
7
- \* Minitest
8
-
9
- Background:
10
- Given I use a fixture named "cli-app"
11
-
12
- Scenario: Use "aruba" with "Cucumber"
13
- Given a file named "features/support/env.rb" with:
14
- """
15
- require 'aruba/cucumber'
16
- """
17
- And a file named "features/use_aruba_with_cucumber.feature" with:
18
- """
19
- Feature: Cucumber
20
- Scenario: First Run
21
- Given a file named "file.txt" with:
22
- \"\"\"
23
- Hello World
24
- \"\"\"
25
- Then the file "file.txt" should contain:
26
- \"\"\"
27
- Hello World
28
- \"\"\"
29
- """
30
- When I run `cucumber`
31
- Then the features should all pass
32
-
33
- Scenario: Use "aruba" with "RSpec"
34
- Given a file named "spec/support/aruba.rb" with:
35
- """
36
- require 'aruba/rspec'
37
- """
38
- And a file named "spec/spec_helper.rb" with:
39
- """
40
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
41
-
42
- if RUBY_VERSION < '1.9.3'
43
- ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
44
- else
45
- ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
46
- end
47
- """
48
- And a file named "spec/use_aruba_with_rspec_spec.rb" with:
49
- """
50
- require 'spec_helper'
51
-
52
- RSpec.describe 'First Run', :type => :aruba do
53
- let(:file) { 'file.txt' }
54
- let(:content) { 'Hello World' }
55
-
56
- before(:each) { write_file file, content }
57
-
58
- it { expect(read(file)).to eq [content] }
59
- end
60
- """
61
- When I run `rspec`
62
- Then the specs should all pass
63
-
64
-
65
- Scenario: Use "aruba" with "Minitest"
66
- Given a file named "test/support/aruba.rb" with:
67
- """
68
- require 'aruba/api'
69
- """
70
- And a file named "test/test_helper.rb" with:
71
- """
72
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
73
-
74
- if RUBY_VERSION < '1.9.3'
75
- ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
76
- else
77
- ::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
78
- end
79
- """
80
- And a file named "test/use_aruba_with_minitest.rb" with:
81
- """
82
- $LOAD_PATH.unshift File.expand_path('../test', __FILE__)
83
-
84
- require 'test_helper'
85
- require 'minitest/autorun'
86
-
87
- class FirstRun < Minitest::Test
88
- include Aruba::Api
89
-
90
- def setup
91
- aruba_setup
92
- end
93
-
94
- def getting_started_with_aruba
95
- file = 'file.txt'
96
- content = 'Hello World'
97
-
98
- write_file file, content
99
- read(file).must_equal [content]
100
- end
101
- end
102
- """
103
- When I run `ruby -Ilib:test test/use_aruba_with_minitest.rb`
104
- Then the tests should all pass
@@ -1,38 +0,0 @@
1
- Feature: Writing good feature tests with aruba to create documentations
2
-
3
- You can use Markdown within your feature tests. This is quite good to write a
4
- living documentation.
5
-
6
- There are some edge cases where Gherkin and Markdown don't agree. Bullet lists
7
- using `*` is one example. The `*` is also an alias for step keywords in
8
- Gherkin. Markdown headers (the kind starting with a `#`) is another example.
9
- They are parsed as comments by Gherkin. To use either of these, just escape
10
- them with a backslash. Alternatively just use the "-".
11
-
12
- You'd write:
13
-
14
- ```gherkin
15
- Scenario: Make tea
16
- \## Making tea
17
- \* Get a pot
18
- \* And some hot water
19
-
20
- Given...
21
- ```
22
-
23
- This way Gherkin won't recognize these lines as special tokens, and the
24
- reporter will render them as Markdown. (The reporter strips away any leading
25
- the backslashes before handing it off to the Markdown parser).
26
-
27
- Another option is to use alternative Markdown syntax and omit conflicts and
28
- escaping altogether:
29
-
30
- ```gherkin
31
- Scenario: Make tea
32
- Making tea
33
- ----------
34
- - Get a pot
35
- - And some hot water
36
-
37
- Given...
38
- ```
@@ -1,46 +0,0 @@
1
- Feature: After command hooks
2
-
3
- You can configure Aruba to run blocks of code after it has run
4
- a command. The command will be passed to the block.
5
-
6
- You can hook into Aruba's lifecycle just before it runs a command and after it has run the command:
7
-
8
- ```ruby
9
- Aruba.configure do |config|
10
- config.after :command do |cmd|
11
- puts "After the run of '#{cmd}'"
12
- end
13
- end
14
- ```
15
-
16
- Background:
17
- Given I use a fixture named "cli-app"
18
-
19
- Scenario: Run a simple command with an "after(:command)"-hook
20
- Given a file named "spec/support/hooks.rb" with:
21
- """
22
- require 'aruba'
23
-
24
- Aruba.configure do |config|
25
- config.after :command do |cmd|
26
- puts "after the run of `#{cmd.commandline}`"
27
- end
28
- end
29
- """
30
- And a file named "spec/hook_spec.rb" with:
31
- """
32
- require 'spec_helper'
33
-
34
- RSpec.describe 'Hooks', :type => :aruba do
35
- before(:each) { run_command_and_stop 'echo running' }
36
-
37
- it { expect(last_command_started.stdout.chomp).to eq 'running' }
38
- end
39
- """
40
- When I run `rspec`
41
- Then the specs should all pass
42
- And the output should contain:
43
- """
44
- after the run of `echo running`
45
- """
46
-