aruba-win-fix 0.14.2
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.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +37 -0
- data/.rspec +3 -0
- data/.rubocop.yml +188 -0
- data/.simplecov +34 -0
- data/.travis.yml +47 -0
- data/.yardopts +8 -0
- data/CONTRIBUTING.md +71 -0
- data/Gemfile +83 -0
- data/History.md +579 -0
- data/LICENSE +20 -0
- data/README.md +226 -0
- data/Rakefile +49 -0
- data/TODO.md +13 -0
- data/appveyor.yml +32 -0
- data/aruba.gemspec +48 -0
- data/bin/aruba +7 -0
- data/config/.gitignore +1 -0
- data/cucumber.yml +26 -0
- data/features/.nav +72 -0
- data/features/api/command/find_command.feature +83 -0
- data/features/api/command/last_command_started.feature +50 -0
- data/features/api/command/last_command_stopped.feature +89 -0
- data/features/api/command/run.feature +414 -0
- data/features/api/command/run_simple.feature +242 -0
- data/features/api/command/send_signal.feature +53 -0
- data/features/api/command/stderr.feature +46 -0
- data/features/api/command/stdout.feature +46 -0
- data/features/api/command/stop.feature +131 -0
- data/features/api/command/stop_all_commands.feature +53 -0
- data/features/api/command/terminate_all_commands.feature +53 -0
- data/features/api/command/which.feature +37 -0
- data/features/api/core/expand_path.feature +88 -0
- data/features/api/environment/append_environment_variable.feature +128 -0
- data/features/api/environment/delete_environment_variable.feature +63 -0
- data/features/api/environment/prepend_environment_variable.feature +128 -0
- data/features/api/environment/set_environment_variable.feature +376 -0
- data/features/api/filesystem/cd.feature +184 -0
- data/features/api/filesystem/create_directory.feature +57 -0
- data/features/api/filesystem/disk_usage.feature +152 -0
- data/features/api/filesystem/does_exist.feature +62 -0
- data/features/api/filesystem/fixtures.feature +104 -0
- data/features/api/filesystem/is_absolute.feature +48 -0
- data/features/api/filesystem/is_directory.feature +53 -0
- data/features/api/filesystem/is_file.feature +54 -0
- data/features/api/filesystem/is_relative.feature +48 -0
- data/features/api/filesystem/move.feature +119 -0
- data/features/api/text/extract_text.feature +87 -0
- data/features/api/text/replace_variables.feature +45 -0
- data/features/api/text/sanitize_text.feature +228 -0
- data/features/api/text/unescape_text.feature +127 -0
- data/features/cli/console.feature +52 -0
- data/features/cli/init.feature +79 -0
- data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
- data/features/configuration/command_runtime_environment.feature +129 -0
- data/features/configuration/console_history_file.feature +38 -0
- data/features/configuration/exit_timeout.feature +52 -0
- data/features/configuration/fixtures_directories.feature +38 -0
- data/features/configuration/fixtures_path_prefix.feature +23 -0
- data/features/configuration/home_directory.feature +80 -0
- data/features/configuration/io_timeout.feature +30 -0
- data/features/configuration/keep_ansi.feature +30 -0
- data/features/configuration/log_level.feature +38 -0
- data/features/configuration/physical_block_size.feature +53 -0
- data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
- data/features/configuration/root_directory.feature +30 -0
- data/features/configuration/startup_wait_time.feature +48 -0
- data/features/configuration/usage.feature +159 -0
- data/features/configuration/working_directory.feature +33 -0
- data/features/development/build.feature +15 -0
- data/features/development/test.feature +24 -0
- data/features/getting_started/cleanup.feature +67 -0
- data/features/getting_started/install.feature +8 -0
- data/features/getting_started/run_commands.feature +177 -0
- data/features/getting_started/supported_testing_frameworks.feature +104 -0
- data/features/getting_started/writing_good_feature_tests.feature +38 -0
- data/features/hooks/after/command.feature +44 -0
- data/features/hooks/before/command.feature +71 -0
- data/features/matchers/collection/include_an_object.feature +72 -0
- data/features/matchers/directory/have_sub_directory.feature +110 -0
- data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
- data/features/matchers/file/be_existing_executable.feature +88 -0
- data/features/matchers/file/be_existing_file.feature +82 -0
- data/features/matchers/file/have_file_content.feature +123 -0
- data/features/matchers/file/have_file_size.feature +107 -0
- data/features/matchers/path/be_an_absolute_path.feature +74 -0
- data/features/matchers/path/be_an_existing_path.feature +97 -0
- data/features/matchers/path/have_permissions.feature +118 -0
- data/features/matchers/timeouts.feature +48 -0
- data/features/platforms/jruby.feature +14 -0
- data/features/rspec/integration.feature +179 -0
- data/features/step_definitions/aruba_dev_steps.rb +56 -0
- data/features/step_definitions/hooks.rb +96 -0
- data/features/steps/command/debug.feature +92 -0
- data/features/steps/command/exit_statuses.feature +136 -0
- data/features/steps/command/in_process.feature +485 -0
- data/features/steps/command/interactive.feature +90 -0
- data/features/steps/command/output.feature +588 -0
- data/features/steps/command/run.feature +66 -0
- data/features/steps/command/send_signal.feature +104 -0
- data/features/steps/command/shell.feature +155 -0
- data/features/steps/command/stderr.feature +68 -0
- data/features/steps/command/stdout.feature +109 -0
- data/features/steps/command/stop.feature +313 -0
- data/features/steps/core/announce.feature +283 -0
- data/features/steps/environment/append_environment_variable.feature +52 -0
- data/features/steps/environment/home_variable.feature +62 -0
- data/features/steps/environment/prepend_environment_variable.feature +52 -0
- data/features/steps/environment/set_environment_variable.feature +49 -0
- data/features/steps/filesystem/append_to_file.feature +45 -0
- data/features/steps/filesystem/cd_to_directory.feature +33 -0
- data/features/steps/filesystem/check_file_content.feature +61 -0
- data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
- data/features/steps/filesystem/compare_files.feature +42 -0
- data/features/steps/filesystem/copy.feature +45 -0
- data/features/steps/filesystem/create_directory.feature +57 -0
- data/features/steps/filesystem/create_file.feature +76 -0
- data/features/steps/filesystem/existence_of_directory.feature +57 -0
- data/features/steps/filesystem/existence_of_file.feature +43 -0
- data/features/steps/filesystem/file_content.feature +86 -0
- data/features/steps/filesystem/fixtures.feature +64 -0
- data/features/steps/filesystem/move.feature +45 -0
- data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
- data/features/steps/filesystem/non_existence_of_file.feature +80 -0
- data/features/steps/filesystem/overwrite_file.feature +72 -0
- data/features/steps/filesystem/remove_directory.feature +38 -0
- data/features/steps/filesystem/remove_file.feature +38 -0
- data/features/steps/filesystem/use_fixture.feature +77 -0
- data/features/steps/overview.feature +60 -0
- data/features/support/aruba.rb +7 -0
- data/features/support/env.rb +33 -0
- data/features/support/jruby.rb +5 -0
- data/features/support/simplecov_setup.rb +8 -0
- data/fixtures/cli-app/.gitignore +9 -0
- data/fixtures/cli-app/.rspec +2 -0
- data/fixtures/cli-app/README.md +39 -0
- data/fixtures/cli-app/Rakefile +1 -0
- data/fixtures/cli-app/bin/cli +6 -0
- data/fixtures/cli-app/cli-app.gemspec +26 -0
- data/fixtures/cli-app/features/support/env.rb +1 -0
- data/fixtures/cli-app/lib/cli/app.rb +13 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
- data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
- data/fixtures/cli-app/script/console +14 -0
- data/fixtures/cli-app/spec/spec_helper.rb +9 -0
- data/fixtures/cli-app/spec/support/aruba.rb +1 -0
- data/fixtures/copy/file.txt +1 -0
- data/fixtures/empty-app/.gitignore +9 -0
- data/fixtures/empty-app/.rspec +2 -0
- data/fixtures/empty-app/README.md +24 -0
- data/fixtures/empty-app/Rakefile +1 -0
- data/fixtures/empty-app/cli-app.gemspec +26 -0
- data/fixtures/empty-app/lib/cli/app.rb +13 -0
- data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
- data/fixtures/getting-started-app/.gitignore +4 -0
- data/fixtures/getting-started-app/Gemfile +4 -0
- data/fixtures/getting-started-app/README.md +3 -0
- data/fixtures/getting-started-app/features/support/env.rb +1 -0
- data/fixtures/spawn_process/stderr.sh +3 -0
- data/lib/aruba.rb +1 -0
- data/lib/aruba/api.rb +34 -0
- data/lib/aruba/api/command.rb +307 -0
- data/lib/aruba/api/core.rb +191 -0
- data/lib/aruba/api/deprecated.rb +897 -0
- data/lib/aruba/api/environment.rb +89 -0
- data/lib/aruba/api/filesystem.rb +392 -0
- data/lib/aruba/api/rvm.rb +44 -0
- data/lib/aruba/api/text.rb +56 -0
- data/lib/aruba/aruba_path.rb +133 -0
- data/lib/aruba/basic_configuration.rb +240 -0
- data/lib/aruba/basic_configuration/option.rb +32 -0
- data/lib/aruba/cli.rb +26 -0
- data/lib/aruba/colorizer.rb +108 -0
- data/lib/aruba/command.rb +74 -0
- data/lib/aruba/config.rb +108 -0
- data/lib/aruba/config/jruby.rb +17 -0
- data/lib/aruba/config_wrapper.rb +58 -0
- data/lib/aruba/console.rb +70 -0
- data/lib/aruba/console/help.rb +35 -0
- data/lib/aruba/contracts/absolute_path.rb +20 -0
- data/lib/aruba/contracts/enum.rb +26 -0
- data/lib/aruba/contracts/is_power_of_two.rb +22 -0
- data/lib/aruba/contracts/relative_path.rb +20 -0
- data/lib/aruba/cucumber.rb +13 -0
- data/lib/aruba/cucumber/command.rb +422 -0
- data/lib/aruba/cucumber/core.rb +5 -0
- data/lib/aruba/cucumber/environment.rb +42 -0
- data/lib/aruba/cucumber/file.rb +201 -0
- data/lib/aruba/cucumber/hooks.rb +160 -0
- data/lib/aruba/cucumber/rvm.rb +3 -0
- data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
- data/lib/aruba/errors.rb +37 -0
- data/lib/aruba/event_bus.rb +59 -0
- data/lib/aruba/event_bus/name_resolver.rb +168 -0
- data/lib/aruba/events.rb +39 -0
- data/lib/aruba/extensions/string/strip.rb +25 -0
- data/lib/aruba/file_size.rb +63 -0
- data/lib/aruba/generators/script_file.rb +46 -0
- data/lib/aruba/hooks.rb +56 -0
- data/lib/aruba/in_config_wrapper.rb +24 -0
- data/lib/aruba/in_process.rb +14 -0
- data/lib/aruba/initializer.rb +222 -0
- data/lib/aruba/jruby.rb +4 -0
- data/lib/aruba/matchers/base/base_matcher.rb +96 -0
- data/lib/aruba/matchers/base/object_formatter.rb +114 -0
- data/lib/aruba/matchers/collection.rb +1 -0
- data/lib/aruba/matchers/collection/all.rb +11 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
- data/lib/aruba/matchers/command.rb +1 -0
- data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
- data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
- data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
- data/lib/aruba/matchers/command/have_output.rb +36 -0
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
- data/lib/aruba/matchers/command/have_output_size.rb +28 -0
- data/lib/aruba/matchers/directory.rb +1 -0
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
- data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
- data/lib/aruba/matchers/environment.rb +1 -0
- data/lib/aruba/matchers/file.rb +1 -0
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
- data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
- data/lib/aruba/matchers/file/have_file_content.rb +62 -0
- data/lib/aruba/matchers/file/have_file_size.rb +47 -0
- data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
- data/lib/aruba/matchers/path.rb +1 -0
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
- data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
- data/lib/aruba/matchers/path/have_permissions.rb +64 -0
- data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
- data/lib/aruba/matchers/string.rb +1 -0
- data/lib/aruba/matchers/string/include_output_string.rb +36 -0
- data/lib/aruba/matchers/string/match_output_string.rb +37 -0
- data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
- data/lib/aruba/platform.rb +25 -0
- data/lib/aruba/platforms/announcer.rb +232 -0
- data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_logger.rb +81 -0
- data/lib/aruba/platforms/command_monitor.rb +229 -0
- data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
- data/lib/aruba/platforms/determine_file_size.rb +22 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
- data/lib/aruba/platforms/filesystem_status.rb +68 -0
- data/lib/aruba/platforms/local_environment.rb +29 -0
- data/lib/aruba/platforms/simple_table.rb +54 -0
- data/lib/aruba/platforms/unix_command_string.rb +27 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
- data/lib/aruba/platforms/unix_platform.rb +276 -0
- data/lib/aruba/platforms/unix_which.rb +85 -0
- data/lib/aruba/platforms/windows_command_string.rb +31 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
- data/lib/aruba/platforms/windows_platform.rb +42 -0
- data/lib/aruba/platforms/windows_which.rb +106 -0
- data/lib/aruba/processes/basic_process.rb +143 -0
- data/lib/aruba/processes/debug_process.rb +69 -0
- data/lib/aruba/processes/in_process.rb +125 -0
- data/lib/aruba/processes/spawn_process.rb +278 -0
- data/lib/aruba/reporting.rb +126 -0
- data/lib/aruba/rspec.rb +107 -0
- data/lib/aruba/runtime.rb +96 -0
- data/lib/aruba/setup.rb +90 -0
- data/lib/aruba/spawn_process.rb +11 -0
- data/lib/aruba/version.rb +3 -0
- data/script/bootstrap +28 -0
- data/script/console +16 -0
- data/script/test +3 -0
- data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
- data/spec/aruba/api/environment/set_env_spec.rb +42 -0
- data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
- data/spec/aruba/api/runtime_spec.rb +28 -0
- data/spec/aruba/api_spec.rb +1209 -0
- data/spec/aruba/aruba_path_spec.rb +103 -0
- data/spec/aruba/basic_configuration_spec.rb +5 -0
- data/spec/aruba/configuration_spec.rb +5 -0
- data/spec/aruba/hooks_spec.rb +17 -0
- data/spec/aruba/in_config_wrapper_spec.rb +25 -0
- data/spec/aruba/jruby_spec.rb +55 -0
- data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
- data/spec/aruba/matchers/command_spec.rb +174 -0
- data/spec/aruba/matchers/directory_spec.rb +57 -0
- data/spec/aruba/matchers/file_spec.rb +127 -0
- data/spec/aruba/matchers/path_spec.rb +88 -0
- data/spec/aruba/platform/simple_table_spec.rb +23 -0
- data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
- data/spec/aruba/rspec_spec.rb +15 -0
- data/spec/aruba/runtime_spec.rb +29 -0
- data/spec/aruba/spawn_process_spec.rb +60 -0
- data/spec/event_bus/name_resolver_spec.rb +68 -0
- data/spec/event_bus_spec.rb +160 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/configs/.keep +0 -0
- data/spec/support/configs/aruba.rb +5 -0
- data/spec/support/configs/pry.rb +3 -0
- data/spec/support/configs/rspec.rb +15 -0
- data/spec/support/helpers/.keep +0 -0
- data/spec/support/helpers/reporting.rb +44 -0
- data/spec/support/matchers/.keep +0 -0
- data/spec/support/matchers/option.rb +35 -0
- data/spec/support/shared_contexts/.keep +0 -0
- data/spec/support/shared_contexts/aruba.rb +48 -0
- data/spec/support/shared_examples/.keep +0 -0
- data/spec/support/shared_examples/configuration.rb +116 -0
- data/spec/support/shared_examples/directory.rb +7 -0
- data/spec/support/shared_examples/file.rb +7 -0
- data/templates/css/console.css +24 -0
- data/templates/css/filesystem.css +42 -0
- data/templates/css/pygments-autumn.css +59 -0
- data/templates/files.erb +14 -0
- data/templates/images/LICENSE +22 -0
- data/templates/images/folder.png +0 -0
- data/templates/images/page_white.png +0 -0
- data/templates/images/page_white_gherkin.png +0 -0
- data/templates/images/page_white_ruby.png +0 -0
- data/templates/index.erb +20 -0
- data/templates/js/filesystem.js +5 -0
- data/templates/js/jquery-1.11.3.min.js +5 -0
- data/templates/main.erb +34 -0
- metadata +629 -0
|
@@ -0,0 +1,159 @@
|
|
|
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('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('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('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('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('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
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
"""
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Feature: Run test suite of aruba
|
|
2
|
+
|
|
3
|
+
As a aruba developer
|
|
4
|
+
I want to run the test suite of aruba
|
|
5
|
+
In order to make changes to it
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given the default aruba exit timeout is 120 seconds
|
|
9
|
+
And I successfully run `git clone https://github.com/cucumber/aruba.git`
|
|
10
|
+
And I cd to "aruba"
|
|
11
|
+
|
|
12
|
+
@ignore
|
|
13
|
+
Scenario: Testing user interface
|
|
14
|
+
Given I successfully run `cucumber`
|
|
15
|
+
Then the features should all pass
|
|
16
|
+
|
|
17
|
+
@unsupported-on-ruby-older-193
|
|
18
|
+
Scenario: Testing compliance to ruby community guide
|
|
19
|
+
Given I successfully run `rubocop`
|
|
20
|
+
Then the features should all pass
|
|
21
|
+
|
|
22
|
+
Scenario: Testing api
|
|
23
|
+
Given I successfully run `rspec`
|
|
24
|
+
Then the features should all pass
|
|
@@ -0,0 +1,67 @@
|
|
|
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: Changes in the filesystem
|
|
13
|
+
Given a file named "tmp/aruba/file.txt" with "content"
|
|
14
|
+
And a directory named "tmp/aruba/dir.d"
|
|
15
|
+
And a file named "features/flushing.feature" with:
|
|
16
|
+
"""
|
|
17
|
+
Feature: Check
|
|
18
|
+
Scenario: Check
|
|
19
|
+
Then a file named "file.txt" does not exist
|
|
20
|
+
And a directory named "dir.d" does not exist
|
|
21
|
+
"""
|
|
22
|
+
When I run `cucumber`
|
|
23
|
+
Then the features should all pass
|
|
24
|
+
|
|
25
|
+
Scenario: Do not clobber before run
|
|
26
|
+
Given a file named "tmp/aruba/file.txt" with "content"
|
|
27
|
+
And a directory named "tmp/aruba/dir.d"
|
|
28
|
+
And a file named "features/flushing.feature" with:
|
|
29
|
+
"""
|
|
30
|
+
Feature: Check
|
|
31
|
+
@no-clobber
|
|
32
|
+
Scenario: Check
|
|
33
|
+
Then a file named "file.txt" should exist
|
|
34
|
+
And a directory named "dir.d" should exist
|
|
35
|
+
"""
|
|
36
|
+
When I run `cucumber`
|
|
37
|
+
Then the features should all pass
|
|
38
|
+
|
|
39
|
+
Scenario: Cleanup and verify the previous scenario
|
|
40
|
+
Given a file named "features/flushing.feature" with:
|
|
41
|
+
"""
|
|
42
|
+
Feature: Check
|
|
43
|
+
Scenario: Check #1
|
|
44
|
+
Given a file named "tmp/aruba/file.txt" with "content"
|
|
45
|
+
And a directory named "tmp/aruba/dir.d"
|
|
46
|
+
|
|
47
|
+
Scenario: Check #2
|
|
48
|
+
Then a file named "file.txt" should not exist
|
|
49
|
+
And a directory named "dir.d" should not exist
|
|
50
|
+
"""
|
|
51
|
+
When I run `cucumber`
|
|
52
|
+
Then the features should all pass
|
|
53
|
+
|
|
54
|
+
Scenario: Current directory from previous scenario is reseted
|
|
55
|
+
Given a file named "features/non-existence.feature" with:
|
|
56
|
+
"""
|
|
57
|
+
Feature: Reset
|
|
58
|
+
Scenario: Reset #1
|
|
59
|
+
Given a directory named "dir1"
|
|
60
|
+
When I cd to "dir1"
|
|
61
|
+
|
|
62
|
+
Scenario: Reset #2
|
|
63
|
+
When I run `pwd`
|
|
64
|
+
Then the output should match %r</tmp/aruba$>
|
|
65
|
+
"""
|
|
66
|
+
When I run `cucumber`
|
|
67
|
+
Then the features should all pass
|
|
@@ -0,0 +1,177 @@
|
|
|
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
|
+
Scenario: Bash Program
|
|
27
|
+
Given an executable named "bin/cli" with:
|
|
28
|
+
"""bash
|
|
29
|
+
#!/usr/bin/env bash
|
|
30
|
+
|
|
31
|
+
echo "Hello, Aruba!"
|
|
32
|
+
"""
|
|
33
|
+
When I successfully run `cucumber`
|
|
34
|
+
Then the features should all pass
|
|
35
|
+
|
|
36
|
+
Scenario: Bash Program run via bash
|
|
37
|
+
Given a file named "features/hello_aruba.feature" with:
|
|
38
|
+
"""
|
|
39
|
+
Feature: Getting Started With Aruba
|
|
40
|
+
Scenario: First Run of Command
|
|
41
|
+
Given a file named "cli.sh" with:
|
|
42
|
+
\"\"\"
|
|
43
|
+
echo "Hello, Aruba!"
|
|
44
|
+
\"\"\"
|
|
45
|
+
When I successfully run `bash ./cli.sh`
|
|
46
|
+
Then the output should contain:
|
|
47
|
+
\"\"\"
|
|
48
|
+
Hello, Aruba!
|
|
49
|
+
\"\"\"
|
|
50
|
+
"""
|
|
51
|
+
When I successfully run `cucumber`
|
|
52
|
+
Then the features should all pass
|
|
53
|
+
|
|
54
|
+
Scenario: Ruby Program
|
|
55
|
+
Given an executable named "bin/cli" with:
|
|
56
|
+
"""ruby
|
|
57
|
+
#!/usr/bin/env ruby
|
|
58
|
+
|
|
59
|
+
puts "Hello, Aruba!"
|
|
60
|
+
"""
|
|
61
|
+
When I successfully run `cucumber`
|
|
62
|
+
Then the features should all pass
|
|
63
|
+
|
|
64
|
+
Scenario: Ruby Program via "ruby"
|
|
65
|
+
Given a file named "features/hello_aruba.feature" with:
|
|
66
|
+
"""
|
|
67
|
+
Feature: Getting Started With Aruba
|
|
68
|
+
Scenario: First Run of Command
|
|
69
|
+
Given a file named "cli.rb" with:
|
|
70
|
+
\"\"\"
|
|
71
|
+
puts "Hello, Aruba!"
|
|
72
|
+
\"\"\"
|
|
73
|
+
When I successfully run `ruby ./cli.rb`
|
|
74
|
+
Then the output should contain:
|
|
75
|
+
\"\"\"
|
|
76
|
+
Hello, Aruba!
|
|
77
|
+
\"\"\"
|
|
78
|
+
"""
|
|
79
|
+
When I successfully run `cucumber`
|
|
80
|
+
Then the features should all pass
|
|
81
|
+
|
|
82
|
+
Scenario: Python Program
|
|
83
|
+
Given an executable named "bin/cli" with:
|
|
84
|
+
"""python
|
|
85
|
+
#!/usr/bin/env python
|
|
86
|
+
|
|
87
|
+
print("Hello, Aruba!")
|
|
88
|
+
"""
|
|
89
|
+
When I successfully run `cucumber`
|
|
90
|
+
Then the features should all pass
|
|
91
|
+
|
|
92
|
+
Scenario: Python Program via "python"
|
|
93
|
+
Given a file named "features/hello_aruba.feature" with:
|
|
94
|
+
"""
|
|
95
|
+
Feature: Getting Started With Aruba
|
|
96
|
+
Scenario: First Run of Command
|
|
97
|
+
Given a file named "cli.py" with:
|
|
98
|
+
\"\"\"
|
|
99
|
+
print("Hello, Aruba!")
|
|
100
|
+
\"\"\"
|
|
101
|
+
When I successfully run `python ./cli.py`
|
|
102
|
+
Then the output should contain:
|
|
103
|
+
\"\"\"
|
|
104
|
+
Hello, Aruba!
|
|
105
|
+
\"\"\"
|
|
106
|
+
"""
|
|
107
|
+
When I successfully run `cucumber`
|
|
108
|
+
Then the features should all pass
|
|
109
|
+
|
|
110
|
+
Scenario: Perl Program
|
|
111
|
+
Given an executable named "bin/cli" with:
|
|
112
|
+
"""perl
|
|
113
|
+
#!/usr/bin/env perl
|
|
114
|
+
|
|
115
|
+
print "Hello, Aruba!\n";
|
|
116
|
+
"""
|
|
117
|
+
When I successfully run `cucumber`
|
|
118
|
+
Then the features should all pass
|
|
119
|
+
|
|
120
|
+
Scenario: Perl Program via "perl"
|
|
121
|
+
Given a file named "features/hello_aruba.feature" with:
|
|
122
|
+
"""
|
|
123
|
+
Feature: Getting Started With Aruba
|
|
124
|
+
Scenario: First Run of Command
|
|
125
|
+
Given a file named "cli.pl" with:
|
|
126
|
+
\"\"\"perl
|
|
127
|
+
print "Hello, Aruba!\n";
|
|
128
|
+
\"\"\"
|
|
129
|
+
When I successfully run `perl ./cli.pl`
|
|
130
|
+
Then the output should contain:
|
|
131
|
+
\"\"\"
|
|
132
|
+
Hello, Aruba!
|
|
133
|
+
\"\"\"
|
|
134
|
+
"""
|
|
135
|
+
When I successfully run `cucumber`
|
|
136
|
+
Then the features should all pass
|
|
137
|
+
|
|
138
|
+
Scenario: Java Program
|
|
139
|
+
|
|
140
|
+
It's even possible to compile and run Java programs with Aruba.
|
|
141
|
+
|
|
142
|
+
Given a file named "features/hello_aruba.feature" with:
|
|
143
|
+
"""cucumber
|
|
144
|
+
Feature: Getting Started With Aruba
|
|
145
|
+
Scenario: First Run of Command
|
|
146
|
+
Given a file named "tmp/HelloArubaApp.java" with:
|
|
147
|
+
\"\"\"
|
|
148
|
+
class HelloArubaApp {
|
|
149
|
+
public static void main(String[] args) {
|
|
150
|
+
System.out.println("Hello, Aruba!");
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
\"\"\"
|
|
154
|
+
And I successfully run `javac tmp/HelloArubaApp.java`
|
|
155
|
+
And I cd to "tmp/"
|
|
156
|
+
And I successfully run `java HelloArubaApp`
|
|
157
|
+
Then the output should contain:
|
|
158
|
+
\"\"\"
|
|
159
|
+
Hello, Aruba!
|
|
160
|
+
\"\"\"
|
|
161
|
+
"""
|
|
162
|
+
When I successfully run `cucumber`
|
|
163
|
+
Then the features should all pass
|
|
164
|
+
|
|
165
|
+
Scenario: POSIX standard tools
|
|
166
|
+
Given a file named "features/hello_aruba.feature" with:
|
|
167
|
+
"""
|
|
168
|
+
Feature: Getting Started With Aruba
|
|
169
|
+
Scenario: First Run of Command
|
|
170
|
+
Given I successfully run `printf "%s" "Hello, Aruba!"`
|
|
171
|
+
Then the output should contain:
|
|
172
|
+
\"\"\"
|
|
173
|
+
Hello, Aruba!
|
|
174
|
+
\"\"\"
|
|
175
|
+
"""
|
|
176
|
+
When I successfully run `cucumber`
|
|
177
|
+
Then the features should all pass
|