aruba 0.14.10 → 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.
- checksums.yaml +4 -4
- data/.cucumberproignore +3 -0
- data/.github/ISSUE_TEMPLATE.md +48 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +41 -0
- data/.gitignore +1 -0
- data/.rspec +1 -1
- data/.rubocop.yml +20 -181
- data/.rubocop_todo.yml +262 -0
- data/.simplecov +7 -5
- data/.travis.yml +53 -25
- data/.yardopts +3 -0
- data/CHANGELOG.md +585 -248
- data/CONTRIBUTING.md +247 -45
- data/Dockerfile +67 -0
- data/Gemfile +5 -106
- data/LICENSE +1 -1
- data/README.md +57 -180
- data/Rakefile +63 -32
- data/appveyor.yml +8 -11
- data/aruba.gemspec +47 -41
- data/bin/console +7 -0
- data/bin/test +9 -0
- data/cucumber.yml +4 -24
- data/doc/dependency_decisions.yml +42 -2
- data/docker-compose.yml +26 -0
- data/{bin → exe}/aruba +1 -1
- data/fixtures/cli-app/Rakefile +1 -1
- data/fixtures/cli-app/bin/aruba-test-cli +1 -1
- data/fixtures/cli-app/cli-app.gemspec +1 -2
- data/fixtures/cli-app/features/support/aruba.rb +1 -0
- data/fixtures/cli-app/features/support/env.rb +1 -1
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
- data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
- data/fixtures/cli-app/lib/cli/app.rb +1 -5
- data/fixtures/cli-app/spec/spec_helper.rb +4 -7
- data/fixtures/empty-app/Rakefile +1 -1
- data/fixtures/empty-app/cli-app.gemspec +1 -2
- data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
- data/fixtures/getting-started-app/Gemfile +1 -1
- data/lib/aruba/api/commands.rb +85 -143
- data/lib/aruba/api/core.rb +48 -41
- data/lib/aruba/api/environment.rb +16 -7
- data/lib/aruba/api/filesystem.rb +43 -30
- data/lib/aruba/api/text.rb +3 -9
- data/lib/aruba/api.rb +6 -11
- data/lib/aruba/aruba_path.rb +27 -89
- data/lib/aruba/basic_configuration.rb +4 -24
- data/lib/aruba/cli.rb +1 -1
- data/lib/aruba/command.rb +2 -0
- data/lib/aruba/config/jruby.rb +1 -1
- data/lib/aruba/config_wrapper.rb +1 -1
- data/lib/aruba/configuration.rb +92 -0
- data/lib/aruba/console/help.rb +1 -7
- data/lib/aruba/console.rb +5 -5
- data/lib/aruba/contracts/absolute_path.rb +2 -2
- data/lib/aruba/contracts/relative_path.rb +2 -2
- data/lib/aruba/cucumber/command.rb +136 -95
- data/lib/aruba/cucumber/environment.rb +1 -1
- data/lib/aruba/cucumber/file.rb +21 -23
- data/lib/aruba/cucumber/hooks.rb +18 -13
- data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
- data/lib/aruba/cucumber.rb +0 -6
- data/lib/aruba/event_bus/name_resolver.rb +5 -16
- data/lib/aruba/hooks.rb +1 -1
- data/lib/aruba/in_config_wrapper.rb +5 -1
- data/lib/aruba/initializer.rb +36 -42
- data/lib/aruba/matchers/base/base_matcher.rb +2 -2
- data/lib/aruba/matchers/base/message_indenter.rb +19 -0
- data/lib/aruba/matchers/base/object_formatter.rb +2 -9
- data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
- data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
- data/lib/aruba/matchers/command/have_exit_status.rb +14 -4
- data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -5
- data/lib/aruba/matchers/command/have_output.rb +10 -5
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -2
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -2
- data/lib/aruba/matchers/command/have_output_size.rb +2 -2
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +5 -7
- data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
- data/lib/aruba/matchers/file/be_an_existing_file.rb +5 -7
- data/lib/aruba/matchers/file/have_file_content.rb +4 -4
- data/lib/aruba/matchers/file/have_file_size.rb +6 -8
- data/lib/aruba/matchers/file/have_same_file_content.rb +5 -8
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
- data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
- data/lib/aruba/matchers/path/have_permissions.rb +6 -8
- data/lib/aruba/matchers/string/include_output_string.rb +8 -10
- data/lib/aruba/matchers/string/match_output_string.rb +9 -11
- data/lib/aruba/matchers/string/output_string_eq.rb +8 -10
- data/lib/aruba/platform.rb +0 -8
- data/lib/aruba/platforms/announcer.rb +42 -79
- data/lib/aruba/platforms/aruba_file_creator.rb +2 -6
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
- data/lib/aruba/platforms/aruba_logger.rb +23 -7
- data/lib/aruba/platforms/command_monitor.rb +12 -104
- data/lib/aruba/platforms/determine_disk_usage.rb +56 -14
- data/lib/aruba/platforms/filesystem_status.rb +10 -14
- data/lib/aruba/platforms/local_environment.rb +2 -2
- data/lib/aruba/platforms/simple_table.rb +3 -11
- data/lib/aruba/platforms/unix_command_string.rb +7 -11
- data/lib/aruba/platforms/unix_environment_variables.rb +18 -27
- data/lib/aruba/platforms/unix_platform.rb +20 -51
- data/lib/aruba/platforms/unix_which.rb +2 -1
- data/lib/aruba/platforms/windows_command_string.rb +15 -10
- data/lib/aruba/platforms/windows_environment_variables.rb +43 -44
- data/lib/aruba/platforms/windows_platform.rb +4 -0
- data/lib/aruba/platforms/windows_which.rb +4 -3
- data/lib/aruba/processes/basic_process.rb +28 -30
- data/lib/aruba/processes/debug_process.rb +12 -3
- data/lib/aruba/processes/in_process.rb +17 -8
- data/lib/aruba/processes/spawn_process.rb +40 -41
- data/lib/aruba/rspec.rb +14 -36
- data/lib/aruba/runtime.rb +3 -6
- data/lib/aruba/setup.rb +6 -6
- data/lib/aruba/tasks/docker_helpers.rb +154 -0
- data/lib/aruba/version.rb +1 -1
- metadata +190 -236
- data/features/.nav +0 -72
- data/features/01_getting_started_with_aruba/cleanup_working_directory.feature +0 -57
- data/features/01_getting_started_with_aruba/run_commands.feature +0 -217
- data/features/01_getting_started_with_aruba/supported_testing_frameworks.feature +0 -88
- data/features/02_configure_aruba/activate_announcer_on_command_failure.feature +0 -38
- data/features/02_configure_aruba/basics.feature +0 -151
- data/features/02_configure_aruba/command_runtime_environment.feature +0 -129
- data/features/02_configure_aruba/console_history_file.feature +0 -38
- data/features/02_configure_aruba/exit_timeout.feature +0 -60
- data/features/02_configure_aruba/fixtures_directories.feature +0 -38
- data/features/02_configure_aruba/fixtures_path_prefix.feature +0 -23
- data/features/02_configure_aruba/home_directory.feature +0 -80
- data/features/02_configure_aruba/io_timeout.feature +0 -30
- data/features/02_configure_aruba/keep_ansi.feature +0 -30
- data/features/02_configure_aruba/log_level.feature +0 -38
- data/features/02_configure_aruba/physical_block_size.feature +0 -53
- data/features/02_configure_aruba/remove_ansi_escape_sequences.feature +0 -38
- data/features/02_configure_aruba/root_directory.feature +0 -30
- data/features/02_configure_aruba/startup_wait_time.feature +0 -48
- data/features/02_configure_aruba/working_directory.feature +0 -38
- data/features/03_testing_frameworks/cucumber/announce_information_for_troubleshooting.feature +0 -263
- data/features/03_testing_frameworks/cucumber/disable_bunder.feature +0 -18
- data/features/03_testing_frameworks/cucumber/steps/command/check_for_exit_statuses.feature +0 -136
- data/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature +0 -514
- data/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature +0 -68
- data/features/03_testing_frameworks/cucumber/steps/command/check_stdout_of_command.feature +0 -109
- data/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature +0 -92
- data/features/03_testing_frameworks/cucumber/steps/command/run_a_command.feature +0 -66
- data/features/03_testing_frameworks/cucumber/steps/command/run_command_in_process.feature +0 -485
- data/features/03_testing_frameworks/cucumber/steps/command/run_command_interactively.feature +0 -90
- data/features/03_testing_frameworks/cucumber/steps/command/run_commands_which_require_a_shell.feature +0 -79
- data/features/03_testing_frameworks/cucumber/steps/command/send_signal_to_command.feature +0 -83
- data/features/03_testing_frameworks/cucumber/steps/command/stop_command.feature +0 -285
- data/features/03_testing_frameworks/cucumber/steps/environment/append_environment_variable.feature +0 -52
- data/features/03_testing_frameworks/cucumber/steps/environment/modify_home_variable_for_testing.feature +0 -62
- data/features/03_testing_frameworks/cucumber/steps/environment/prepend_environment_variable.feature +0 -52
- data/features/03_testing_frameworks/cucumber/steps/environment/set_environment_variable.feature +0 -49
- data/features/03_testing_frameworks/cucumber/steps/filesystem/append_to_file.feature +0 -45
- data/features/03_testing_frameworks/cucumber/steps/filesystem/cd_to_directory.feature +0 -33
- data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_directory.feature +0 -57
- data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_file.feature +0 -43
- data/features/03_testing_frameworks/cucumber/steps/filesystem/check_file_content.feature +0 -143
- data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_directory.feature +0 -69
- data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_file.feature +0 -80
- data/features/03_testing_frameworks/cucumber/steps/filesystem/check_permissions_of_file.feature +0 -39
- data/features/03_testing_frameworks/cucumber/steps/filesystem/compare_files.feature +0 -42
- data/features/03_testing_frameworks/cucumber/steps/filesystem/copy_file_or_directory.feature +0 -45
- data/features/03_testing_frameworks/cucumber/steps/filesystem/create_directory.feature +0 -57
- data/features/03_testing_frameworks/cucumber/steps/filesystem/create_file.feature +0 -76
- data/features/03_testing_frameworks/cucumber/steps/filesystem/move_file_or_directory.feature +0 -44
- data/features/03_testing_frameworks/cucumber/steps/filesystem/overwrite_file.feature +0 -72
- data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_directory.feature +0 -38
- data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_file.feature +0 -38
- data/features/03_testing_frameworks/cucumber/steps/filesystem/use_fixtures_for_setup_test.feature +0 -77
- data/features/03_testing_frameworks/rspec/hooks/define_after_hook_for_commands.feature +0 -43
- data/features/03_testing_frameworks/rspec/hooks/define_before_hook_for_commands.feature +0 -71
- data/features/03_testing_frameworks/rspec/setup_aruba_for_rspec.feature +0 -179
- data/features/04_aruba_api/command/find_a_started_command.feature +0 -83
- data/features/04_aruba_api/command/find_command_in_PATH.feature +0 -37
- data/features/04_aruba_api/command/read_stderr_of_command.feature +0 -46
- data/features/04_aruba_api/command/read_stdout_of_command.feature +0 -46
- data/features/04_aruba_api/command/run_command.feature +0 -423
- data/features/04_aruba_api/command/run_simple.feature +0 -254
- data/features/04_aruba_api/command/send_signal_to_command.feature +0 -53
- data/features/04_aruba_api/command/stop_all_commands.feature +0 -57
- data/features/04_aruba_api/command/stop_single_command.feature +0 -132
- data/features/04_aruba_api/command/terminate_all_commands.feature +0 -57
- data/features/04_aruba_api/command/use_last_command_started.feature +0 -50
- data/features/04_aruba_api/command/use_last_command_stopped.feature +0 -89
- data/features/04_aruba_api/core/expand_path.feature +0 -88
- data/features/04_aruba_api/environment/append_environment_variable.feature +0 -128
- data/features/04_aruba_api/environment/delete_environment_variable.feature +0 -63
- data/features/04_aruba_api/environment/prepend_environment_variable.feature +0 -128
- data/features/04_aruba_api/environment/set_environment_variable.feature +0 -376
- data/features/04_aruba_api/filesystem/cd_to_directory.feature +0 -184
- data/features/04_aruba_api/filesystem/check_existence_file_or_directory.feature +0 -62
- data/features/04_aruba_api/filesystem/check_if_path_is_absolute.feature +0 -48
- data/features/04_aruba_api/filesystem/check_if_path_is_directory.feature +0 -53
- data/features/04_aruba_api/filesystem/check_if_path_is_file.feature +0 -54
- data/features/04_aruba_api/filesystem/check_if_path_is_relative.feature +0 -48
- data/features/04_aruba_api/filesystem/create_directory.feature +0 -57
- data/features/04_aruba_api/filesystem/move_file_or_directory.feature +0 -119
- data/features/04_aruba_api/filesystem/report_disk_usage.feature +0 -152
- data/features/04_aruba_api/filesystem/use_fixtures.feature +0 -104
- data/features/04_aruba_api/text/extract_text.feature +0 -87
- data/features/04_aruba_api/text/replace_variables.feature +0 -45
- data/features/04_aruba_api/text/sanitize_text.feature +0 -228
- data/features/04_aruba_api/text/unescape_text.feature +0 -127
- data/features/05_use_rspec_matchers/command/check_timeouts.feature +0 -48
- data/features/05_use_rspec_matchers/directory/have_sub_directory.feature +0 -110
- data/features/05_use_rspec_matchers/file/be_a_command_found_in_path.feature +0 -115
- data/features/05_use_rspec_matchers/file/be_existing_executable.feature +0 -88
- data/features/05_use_rspec_matchers/file/be_existing_file.feature +0 -82
- data/features/05_use_rspec_matchers/file/have_file_content.feature +0 -123
- data/features/05_use_rspec_matchers/file/have_file_size.feature +0 -107
- data/features/05_use_rspec_matchers/path/be_an_absolute_path.feature +0 -74
- data/features/05_use_rspec_matchers/path/be_an_existing_path.feature +0 -97
- data/features/05_use_rspec_matchers/path/have_permissions.feature +0 -118
- data/features/06_use_aruba_cli/initialize_project_with_aruba.feature +0 -79
- data/features/06_use_aruba_cli/open_console.feature +0 -52
- data/features/08_other/improve_performance_if_using_jruby.feature +0 -37
- data/features/step_definitions/hooks.rb +0 -146
- data/features/support/aruba.rb +0 -7
- data/features/support/env.rb +0 -33
- data/features/support/jruby.rb +0 -5
- data/features/support/simplecov_setup.rb +0 -11
- data/fixtures/spawn_process/stderr.sh +0 -3
- data/lib/aruba/api/deprecated.rb +0 -1163
- data/lib/aruba/config.rb +0 -107
- data/lib/aruba/cucumber/core.rb +0 -5
- data/lib/aruba/cucumber/deprecated.rb +0 -93
- data/lib/aruba/cucumber/rvm.rb +0 -3
- data/lib/aruba/in_process.rb +0 -16
- data/lib/aruba/jruby.rb +0 -4
- data/lib/aruba/matchers/deprecated/file.rb +0 -17
- data/lib/aruba/matchers/deprecated.rb +0 -1
- data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
- data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
- data/lib/aruba/reporting.rb +0 -126
- data/lib/aruba/spawn_process.rb +0 -14
- data/script/bootstrap +0 -24
- data/script/console +0 -16
- data/script/test +0 -3
- data/spec/aruba/api/bundler_spec.rb +0 -15
- data/spec/aruba/api/core_spec.rb +0 -142
- data/spec/aruba/api/deprecated_spec.rb +0 -421
- data/spec/aruba/api/filesystem_spec.rb +0 -746
- data/spec/aruba/api/runtime_spec.rb +0 -28
- data/spec/aruba/api_spec.rb +0 -97
- data/spec/aruba/aruba_path_spec.rb +0 -103
- data/spec/aruba/basic_configuration_spec.rb +0 -5
- data/spec/aruba/configuration_spec.rb +0 -5
- data/spec/aruba/hooks_spec.rb +0 -17
- data/spec/aruba/in_config_wrapper_spec.rb +0 -25
- data/spec/aruba/jruby_spec.rb +0 -73
- data/spec/aruba/matchers/command/have_output_size_spec.rb +0 -25
- data/spec/aruba/matchers/command_spec.rb +0 -174
- data/spec/aruba/matchers/deprecated_spec.rb +0 -120
- data/spec/aruba/matchers/directory_spec.rb +0 -57
- data/spec/aruba/matchers/file_spec.rb +0 -208
- data/spec/aruba/matchers/path_spec.rb +0 -58
- data/spec/aruba/platform/simple_table_spec.rb +0 -23
- data/spec/aruba/platform/windows_environment_variables_spec.rb +0 -500
- data/spec/aruba/platforms/unix_command_string_spec.rb +0 -17
- data/spec/aruba/platforms/windows_command_string_spec.rb +0 -22
- data/spec/aruba/processes/spawn_process_spec.rb +0 -112
- data/spec/aruba/rspec_spec.rb +0 -15
- data/spec/aruba/runtime_spec.rb +0 -29
- data/spec/event_bus/name_resolver_spec.rb +0 -68
- data/spec/event_bus_spec.rb +0 -158
- data/spec/spec_helper.rb +0 -22
- data/spec/support/configs/.keep +0 -0
- data/spec/support/configs/aruba.rb +0 -5
- data/spec/support/configs/pry.rb +0 -3
- data/spec/support/configs/rspec.rb +0 -15
- data/spec/support/helpers/.keep +0 -0
- data/spec/support/helpers/reporting.rb +0 -44
- data/spec/support/matchers/.keep +0 -0
- data/spec/support/matchers/option.rb +0 -35
- data/spec/support/shared_contexts/.keep +0 -0
- data/spec/support/shared_contexts/aruba.rb +0 -49
- data/spec/support/shared_examples/.keep +0 -0
- data/spec/support/shared_examples/configuration.rb +0 -116
- data/spec/support/shared_examples/directory.rb +0 -7
- data/spec/support/shared_examples/file.rb +0 -7
- data/templates/css/console.css +0 -24
- data/templates/css/filesystem.css +0 -42
- data/templates/css/pygments-autumn.css +0 -59
- data/templates/files.erb +0 -14
- data/templates/images/LICENSE +0 -22
- 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 +0 -20
- data/templates/js/filesystem.js +0 -5
- data/templates/js/jquery-1.11.3.min.js +0 -5
- data/templates/main.erb +0 -34
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
# Cucumber
|
|
2
|
-
Then /^the feature(?:s)? should
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
Then /^the feature(?:s)? should not(?: all)? pass$/ do
|
|
3
|
+
step 'the output should contain " failed)"'
|
|
4
|
+
step 'the exit status should be 1'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# Cucumber
|
|
8
|
+
Then /^the feature(?:s)? should(?: all)? pass$/ do
|
|
9
|
+
step 'the output should not contain " failed)"'
|
|
10
|
+
step 'the output should not contain " undefined)"'
|
|
11
|
+
step 'the exit status should be 0'
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
# Cucumber
|
|
14
|
-
Then /^the feature(?:s)? should
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
Then /^the feature(?:s)? should not(?: all)? pass with( regex)?:$/ do |regex, string|
|
|
16
|
+
step 'the output should contain " failed)"'
|
|
17
|
+
step 'the exit status should be 1'
|
|
18
|
+
|
|
19
|
+
if regex
|
|
20
|
+
step "the output should match %r<#{string}>"
|
|
18
21
|
else
|
|
19
|
-
step 'the output should
|
|
20
|
-
step 'the output should not contain " undefined)"'
|
|
21
|
-
step 'the exit status should be 0'
|
|
22
|
+
step 'the output should contain:', string
|
|
22
23
|
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Cucumber
|
|
27
|
+
Then /^the feature(?:s)? should(?: all)? pass with( regex)?:$/ do |regex, string|
|
|
28
|
+
step 'the output should not contain " failed)"'
|
|
29
|
+
step 'the output should not contain " undefined)"'
|
|
30
|
+
step 'the exit status should be 0'
|
|
23
31
|
|
|
24
32
|
if regex
|
|
25
33
|
step "the output should match %r<#{string}>"
|
|
@@ -29,30 +37,38 @@ Then /^the feature(?:s)? should( not)?(?: all)? pass with( regex)?:$/ do |negate
|
|
|
29
37
|
end
|
|
30
38
|
|
|
31
39
|
# RSpec
|
|
32
|
-
Then /^the spec(?:s)? should
|
|
33
|
-
if
|
|
34
|
-
|
|
35
|
-
step 'the output should not contain "0 failures"'
|
|
36
|
-
else
|
|
37
|
-
step %(the output should contain "#{count_failures} failures")
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
step 'the exit status should be 1'
|
|
40
|
+
Then /^the spec(?:s)? should not(?: all)? pass(?: with (\d+) failures?)?$/ do |count_failures|
|
|
41
|
+
if count_failures.nil?
|
|
42
|
+
step 'the output should not contain "0 failures"'
|
|
41
43
|
else
|
|
42
|
-
step
|
|
43
|
-
step 'the exit status should be 0'
|
|
44
|
+
step %(the output should contain "#{count_failures} failures")
|
|
44
45
|
end
|
|
46
|
+
|
|
47
|
+
step 'the exit status should be 1'
|
|
45
48
|
end
|
|
46
49
|
|
|
47
50
|
# RSpec
|
|
48
|
-
Then /^the spec(?:s)? should
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
Then /^the spec(?:s)? should all pass$/ do
|
|
52
|
+
step 'the output should contain "0 failures"'
|
|
53
|
+
step 'the exit status should be 0'
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# RSpec
|
|
57
|
+
Then /^the spec(?:s)? should not(?: all)? pass with( regex)?:$/ do |regex, string|
|
|
58
|
+
step 'the output should not contain "0 failures"'
|
|
59
|
+
step 'the exit status should be 1'
|
|
60
|
+
|
|
61
|
+
if regex
|
|
62
|
+
step "the output should match %r<#{string}>"
|
|
52
63
|
else
|
|
53
|
-
step 'the output should contain
|
|
54
|
-
step 'the exit status should be 0'
|
|
64
|
+
step 'the output should contain:', string
|
|
55
65
|
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# RSpec
|
|
69
|
+
Then /^the spec(?:s)? should(?: all)? pass with( regex)?:$/ do |regex, string|
|
|
70
|
+
step 'the output should contain "0 failures"'
|
|
71
|
+
step 'the exit status should be 0'
|
|
56
72
|
|
|
57
73
|
if regex
|
|
58
74
|
step "the output should match %r<#{string}>"
|
|
@@ -62,30 +78,38 @@ Then /^the spec(?:s)? should( not)?(?: all)? pass with( regex)?:$/ do |negated,
|
|
|
62
78
|
end
|
|
63
79
|
|
|
64
80
|
# Minitest
|
|
65
|
-
Then /^the tests(?:s)? should
|
|
66
|
-
if
|
|
67
|
-
|
|
68
|
-
step 'the output should not contain "0 errors"'
|
|
69
|
-
else
|
|
70
|
-
step %(the output should contain "#{count_failures} errors")
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
step 'the exit status should be 1'
|
|
81
|
+
Then /^the tests(?:s)? should not(?: all)? pass(?: with (\d+) failures?)?$/ do |count_failures|
|
|
82
|
+
if count_failures.nil?
|
|
83
|
+
step 'the output should not contain "0 errors"'
|
|
74
84
|
else
|
|
75
|
-
step
|
|
76
|
-
step 'the exit status should be 0'
|
|
85
|
+
step %(the output should contain "#{count_failures} errors")
|
|
77
86
|
end
|
|
87
|
+
|
|
88
|
+
step 'the exit status should be 1'
|
|
78
89
|
end
|
|
79
90
|
|
|
80
91
|
# Minitest
|
|
81
|
-
Then /^the
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
Then /^the tests(?:s)? should all pass$/ do
|
|
93
|
+
step 'the output should contain "0 errors"'
|
|
94
|
+
step 'the exit status should be 0'
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Minitest
|
|
98
|
+
Then /^the test(?:s)? should not(?: all)? pass with( regex)?:$/ do |regex, string|
|
|
99
|
+
step 'the output should contain "0 errors"'
|
|
100
|
+
step 'the exit status should be 1'
|
|
101
|
+
|
|
102
|
+
if regex
|
|
103
|
+
step "the output should match %r<#{string}>"
|
|
85
104
|
else
|
|
86
|
-
step 'the output should
|
|
87
|
-
step 'the exit status should be 0'
|
|
105
|
+
step 'the output should contain:', string
|
|
88
106
|
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Minitest
|
|
110
|
+
Then /^the test(?:s)? should(?: all)? pass with( regex)?:$/ do |regex, string|
|
|
111
|
+
step 'the output should not contain "0 errors"'
|
|
112
|
+
step 'the exit status should be 0'
|
|
89
113
|
|
|
90
114
|
if regex
|
|
91
115
|
step "the output should match %r<#{string}>"
|
data/lib/aruba/cucumber.rb
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
require 'aruba/version'
|
|
2
2
|
|
|
3
3
|
require 'aruba/api'
|
|
4
|
-
World(Aruba::Api)
|
|
5
|
-
|
|
6
4
|
require 'aruba/cucumber/hooks'
|
|
7
5
|
require 'aruba/cucumber/command'
|
|
8
|
-
require 'aruba/cucumber/core'
|
|
9
|
-
require 'aruba/cucumber/deprecated'
|
|
10
6
|
require 'aruba/cucumber/environment'
|
|
11
7
|
require 'aruba/cucumber/file'
|
|
12
8
|
require 'aruba/cucumber/testing_frameworks'
|
|
13
|
-
require 'aruba/cucumber/rvm'
|
|
14
|
-
require 'aruba/reporting'
|
|
@@ -10,17 +10,12 @@ module Aruba
|
|
|
10
10
|
# Helpers for Resolvers
|
|
11
11
|
module ResolveHelpers
|
|
12
12
|
def camel_case(underscored_name)
|
|
13
|
-
|
|
14
|
-
underscored_name.to_s.split('_').map { |word| word.upcase.chars.to_a[0] + word.chars.to_a[1..-1].join }.join
|
|
15
|
-
else
|
|
16
|
-
underscored_name.to_s.split('_').map { |word| word.upcase[0] + word[1..-1] }.join
|
|
17
|
-
end
|
|
13
|
+
underscored_name.to_s.split('_').map { |word| word.upcase[0] + word[1..-1] }.join
|
|
18
14
|
end
|
|
19
15
|
|
|
20
16
|
# Thanks ActiveSupport
|
|
21
17
|
# (Only needed to support Ruby 1.9.3 and JRuby)
|
|
22
18
|
# rubocop:disable Metrics/CyclomaticComplexity
|
|
23
|
-
# rubocop:disable Metrics/MethodLength
|
|
24
19
|
def constantize(camel_cased_word)
|
|
25
20
|
names = camel_cased_word.split('::')
|
|
26
21
|
|
|
@@ -36,23 +31,18 @@ module Aruba
|
|
|
36
31
|
else
|
|
37
32
|
candidate = constant.const_get(name)
|
|
38
33
|
|
|
39
|
-
|
|
40
|
-
next candidate if constant.const_defined?(name)
|
|
41
|
-
else
|
|
42
|
-
next candidate if constant.const_defined?(name, false)
|
|
43
|
-
end
|
|
34
|
+
next candidate if constant.const_defined?(name, false)
|
|
44
35
|
|
|
45
36
|
next candidate unless Object.const_defined?(name)
|
|
46
37
|
|
|
47
38
|
# Go down the ancestors to check if it is owned directly. The check
|
|
48
39
|
# stops when we reach Object or the end of ancestors tree.
|
|
49
|
-
# rubocop:disable Style/EachWithObject
|
|
50
40
|
constant = constant.ancestors.inject do |const, ancestor|
|
|
51
41
|
break const if ancestor == Object
|
|
52
42
|
break ancestor if ancestor.const_defined?(name, false)
|
|
43
|
+
|
|
53
44
|
const
|
|
54
45
|
end
|
|
55
|
-
# rubocop:enable Style/EachWithObject
|
|
56
46
|
|
|
57
47
|
# owner is in Object, so raise
|
|
58
48
|
constant.const_get(name, false)
|
|
@@ -60,7 +50,6 @@ module Aruba
|
|
|
60
50
|
end
|
|
61
51
|
end
|
|
62
52
|
# rubocop:enable Metrics/CyclomaticComplexity
|
|
63
|
-
# rubocop:enable Metrics/MethodLength
|
|
64
53
|
end
|
|
65
54
|
|
|
66
55
|
# @private
|
|
@@ -159,9 +148,9 @@ module Aruba
|
|
|
159
148
|
def transform(event_id)
|
|
160
149
|
resolvers.find { |r| r.match? event_id }.new.transform(default_namespace, event_id)
|
|
161
150
|
rescue => e
|
|
162
|
-
# rubocop:disable
|
|
151
|
+
# rubocop:disable Layout/LineLength
|
|
163
152
|
raise EventNameResolveError, %(Transforming "#{event_id}" into an event class failed. Supported types are: #{@resolvers.map(&:supports).flatten.join(', ')}. #{e.message}.\n\n#{e.backtrace.join("\n")})
|
|
164
|
-
# rubocop:enable
|
|
153
|
+
# rubocop:enable Layout/LineLength
|
|
165
154
|
end
|
|
166
155
|
end
|
|
167
156
|
end
|
data/lib/aruba/hooks.rb
CHANGED
|
@@ -18,7 +18,7 @@ module Aruba
|
|
|
18
18
|
# @param [String, Symbol] label
|
|
19
19
|
# The name of the hook
|
|
20
20
|
#
|
|
21
|
-
# @
|
|
21
|
+
# @param [Proc] block
|
|
22
22
|
# The block which should be run for the hook
|
|
23
23
|
def append(label, block)
|
|
24
24
|
if store.key?(label.to_sym) && store[label.to_sym].respond_to?(:<<)
|
|
@@ -15,10 +15,14 @@ module Aruba
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def method_missing(name, *args)
|
|
18
|
-
fail ArgumentError, 'Options take no argument' if args.
|
|
18
|
+
fail ArgumentError, 'Options take no argument' if args.any?
|
|
19
19
|
fail UnknownOptionError, %(Option "#{name}" is unknown. Please use only earlier defined options) unless config.key? name
|
|
20
20
|
|
|
21
21
|
config[name]
|
|
22
22
|
end
|
|
23
|
+
|
|
24
|
+
def respond_to_missing?(*)
|
|
25
|
+
true
|
|
26
|
+
end
|
|
23
27
|
end
|
|
24
28
|
end
|
data/lib/aruba/initializer.rb
CHANGED
|
@@ -23,7 +23,11 @@ module Aruba
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
content = if File.exist? file
|
|
26
|
-
|
|
26
|
+
file_ends_with_carriage_return = File.open(file, 'r').readlines.last.match(/.*\n$/)
|
|
27
|
+
|
|
28
|
+
prefix = file_ends_with_carriage_return ? '' : "\n"
|
|
29
|
+
|
|
30
|
+
%(#{prefix}gem 'aruba', '~> #{Aruba::VERSION}')
|
|
27
31
|
else
|
|
28
32
|
%(source 'https://rubygems.org'\ngem 'aruba', '~> #{Aruba::VERSION}'\n)
|
|
29
33
|
end
|
|
@@ -68,7 +72,7 @@ module Aruba
|
|
|
68
72
|
|
|
69
73
|
no_commands do
|
|
70
74
|
def self.match?(framework)
|
|
71
|
-
|
|
75
|
+
framework.downcase.to_sym == :rspec
|
|
72
76
|
end
|
|
73
77
|
end
|
|
74
78
|
|
|
@@ -80,23 +84,18 @@ module Aruba
|
|
|
80
84
|
:create_file
|
|
81
85
|
end
|
|
82
86
|
|
|
83
|
-
send creator, file,
|
|
84
|
-
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
87
|
+
send creator, file, <<~EOS
|
|
88
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
85
89
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
else
|
|
90
|
-
::Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require_relative f }
|
|
91
|
-
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
|
92
|
-
end
|
|
93
|
-
EOS
|
|
90
|
+
::Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require_relative f }
|
|
91
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
|
92
|
+
EOS
|
|
94
93
|
end
|
|
95
94
|
|
|
96
95
|
def create_support_file
|
|
97
|
-
create_file 'spec/support/aruba.rb',
|
|
98
|
-
require 'aruba/rspec'
|
|
99
|
-
EOS
|
|
96
|
+
create_file 'spec/support/aruba.rb', <<~EOS
|
|
97
|
+
require 'aruba/rspec'
|
|
98
|
+
EOS
|
|
100
99
|
end
|
|
101
100
|
end
|
|
102
101
|
end
|
|
@@ -114,14 +113,14 @@ module Aruba
|
|
|
114
113
|
|
|
115
114
|
no_commands do
|
|
116
115
|
def self.match?(framework)
|
|
117
|
-
|
|
116
|
+
framework.downcase.to_sym == :cucumber
|
|
118
117
|
end
|
|
119
118
|
end
|
|
120
119
|
|
|
121
120
|
def create_support_file
|
|
122
|
-
create_file 'features/support/aruba.rb',
|
|
123
|
-
require 'aruba/cucumber'
|
|
124
|
-
EOS
|
|
121
|
+
create_file 'features/support/aruba.rb', <<~EOS
|
|
122
|
+
require 'aruba/cucumber'
|
|
123
|
+
EOS
|
|
125
124
|
end
|
|
126
125
|
end
|
|
127
126
|
end
|
|
@@ -139,7 +138,7 @@ module Aruba
|
|
|
139
138
|
|
|
140
139
|
no_commands do
|
|
141
140
|
def self.match?(framework)
|
|
142
|
-
|
|
141
|
+
framework.downcase.to_sym == :minitest
|
|
143
142
|
end
|
|
144
143
|
end
|
|
145
144
|
|
|
@@ -151,35 +150,30 @@ module Aruba
|
|
|
151
150
|
:create_file
|
|
152
151
|
end
|
|
153
152
|
|
|
154
|
-
send creator, file,
|
|
155
|
-
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
153
|
+
send creator, file, <<~EOS
|
|
154
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
156
155
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
else
|
|
161
|
-
::Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require_relative f }
|
|
162
|
-
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
|
163
|
-
end
|
|
164
|
-
EOS
|
|
156
|
+
::Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require_relative f }
|
|
157
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
|
158
|
+
EOS
|
|
165
159
|
end
|
|
166
160
|
|
|
167
161
|
def create_example
|
|
168
|
-
create_file 'test/use_aruba_with_minitest.rb',
|
|
169
|
-
$LOAD_PATH.unshift File.expand_path('../test', __FILE__)
|
|
162
|
+
create_file 'test/use_aruba_with_minitest.rb', <<~EOS
|
|
163
|
+
$LOAD_PATH.unshift File.expand_path('../test', __FILE__)
|
|
170
164
|
|
|
171
|
-
require 'test_helper'
|
|
172
|
-
require 'minitest/autorun'
|
|
173
|
-
require 'aruba/api'
|
|
165
|
+
require 'test_helper'
|
|
166
|
+
require 'minitest/autorun'
|
|
167
|
+
require 'aruba/api'
|
|
174
168
|
|
|
175
|
-
class FirstRun < Minitest::Test
|
|
176
|
-
|
|
169
|
+
class FirstRun < Minitest::Test
|
|
170
|
+
include Aruba::Api
|
|
177
171
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
end
|
|
182
|
-
EOS
|
|
172
|
+
def setup
|
|
173
|
+
aruba_setup
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
EOS
|
|
183
177
|
end
|
|
184
178
|
end
|
|
185
179
|
end
|
|
@@ -72,14 +72,14 @@ module Aruba
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# @private
|
|
75
|
-
# rubocop:disable
|
|
75
|
+
# rubocop:disable Naming/PredicateName
|
|
76
76
|
def self.has_default_failure_messages?(matcher)
|
|
77
77
|
matcher.method(:failure_message).owner == self &&
|
|
78
78
|
matcher.method(:failure_message_when_negated).owner == self
|
|
79
79
|
rescue NameError
|
|
80
80
|
false
|
|
81
81
|
end
|
|
82
|
-
# rubocop:enable
|
|
82
|
+
# rubocop:enable Naming/PredicateName
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
include DefaultFailureMessages
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Aruba
|
|
2
|
+
module Matchers
|
|
3
|
+
module Base
|
|
4
|
+
# Provide #indent_multiline_message helper method.
|
|
5
|
+
#
|
|
6
|
+
# @api private
|
|
7
|
+
module MessageIndenter
|
|
8
|
+
module_function
|
|
9
|
+
|
|
10
|
+
def indent_multiline_message(message)
|
|
11
|
+
message = message.sub(/\n+\z/, '')
|
|
12
|
+
message.lines.map do |line|
|
|
13
|
+
/\S/.match?(line) ? ' ' + line : line
|
|
14
|
+
end.join
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -12,7 +12,6 @@ module Aruba
|
|
|
12
12
|
prepare_for_inspection(object).inspect
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
# rubocop:disable MethodLength
|
|
16
15
|
# rubocop:disable Metrics/CyclomaticComplexity
|
|
17
16
|
|
|
18
17
|
# @private
|
|
@@ -48,7 +47,6 @@ module Aruba
|
|
|
48
47
|
InspectableItem.new(inspection)
|
|
49
48
|
end
|
|
50
49
|
# rubocop:enable Metrics/CyclomaticComplexity
|
|
51
|
-
# rubocop:enable MethodLength
|
|
52
50
|
|
|
53
51
|
# @private
|
|
54
52
|
def self.prepare_hash(input)
|
|
@@ -57,21 +55,16 @@ module Aruba
|
|
|
57
55
|
end
|
|
58
56
|
end
|
|
59
57
|
|
|
60
|
-
TIME_FORMAT =
|
|
58
|
+
TIME_FORMAT = '%Y-%m-%d %H:%M:%S'.freeze
|
|
61
59
|
|
|
62
60
|
if Time.method_defined?(:nsec)
|
|
63
61
|
# @private
|
|
64
62
|
def self.format_time(time)
|
|
65
63
|
time.strftime("#{TIME_FORMAT}.#{format('%09d', time.nsec)} %z")
|
|
66
64
|
end
|
|
67
|
-
else # for 1.8.7
|
|
68
|
-
# @private
|
|
69
|
-
def self.format_time(time)
|
|
70
|
-
time.strftime("#{TIME_FORMAT}.#{format('%06d', time.usec)} %z")
|
|
71
|
-
end
|
|
72
65
|
end
|
|
73
66
|
|
|
74
|
-
DATE_TIME_FORMAT =
|
|
67
|
+
DATE_TIME_FORMAT = '%a, %d %b %Y %H:%M:%S.%N %z'.freeze
|
|
75
68
|
|
|
76
69
|
# ActiveSupport sometimes overrides inspect. If `ActiveSupport` is
|
|
77
70
|
# defined use a custom format string that includes more time precision.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'aruba/matchers/base/base_matcher'
|
|
2
|
+
require 'aruba/matchers/base/message_indenter'
|
|
2
3
|
|
|
3
4
|
# Aruba
|
|
4
5
|
module Aruba
|
|
@@ -8,6 +9,8 @@ module Aruba
|
|
|
8
9
|
# Provides the implementation for `include_an_object`.
|
|
9
10
|
# Not intended to be instantiated directly.
|
|
10
11
|
class IncludeAnObject < BaseMatcher
|
|
12
|
+
include Base::MessageIndenter
|
|
13
|
+
|
|
11
14
|
protected
|
|
12
15
|
|
|
13
16
|
# @private
|
|
@@ -19,7 +22,7 @@ module Aruba
|
|
|
19
22
|
|
|
20
23
|
def initialize(matcher)
|
|
21
24
|
@matcher = matcher
|
|
22
|
-
@failed_objects =
|
|
25
|
+
@failed_objects = []
|
|
23
26
|
@any_succeeded_object = false
|
|
24
27
|
end
|
|
25
28
|
|
|
@@ -30,8 +33,10 @@ module Aruba
|
|
|
30
33
|
return "#{improve_hash_formatting(super)}, but was not iterable"
|
|
31
34
|
end
|
|
32
35
|
|
|
36
|
+
return failed_objects.first if failed_objects.size == 1
|
|
37
|
+
|
|
33
38
|
all_messages = [improve_hash_formatting(super)]
|
|
34
|
-
failed_objects.
|
|
39
|
+
failed_objects.each_with_index do |matcher_failure_message, index|
|
|
35
40
|
all_messages << failure_message_for_item(index, matcher_failure_message)
|
|
36
41
|
end
|
|
37
42
|
all_messages.join("\n\n")
|
|
@@ -92,13 +97,6 @@ module Aruba
|
|
|
92
97
|
def add_new_line_if_needed(message)
|
|
93
98
|
message.start_with?("\n") ? message : "\n#{message}"
|
|
94
99
|
end
|
|
95
|
-
|
|
96
|
-
def indent_multiline_message(message)
|
|
97
|
-
message = message.sub(/\n+\z/, '')
|
|
98
|
-
message.lines.map do |line|
|
|
99
|
-
line =~ /\S/ ? ' ' + line : line
|
|
100
|
-
end.join
|
|
101
|
-
end
|
|
102
100
|
end
|
|
103
101
|
end
|
|
104
102
|
end
|
|
@@ -6,7 +6,7 @@ require 'aruba/matchers/command/have_finished_in_time'
|
|
|
6
6
|
# @!method be_successfuly_executed
|
|
7
7
|
# This matchers checks if execution of <command> was successful
|
|
8
8
|
#
|
|
9
|
-
# @return [
|
|
9
|
+
# @return [Boolean] The result
|
|
10
10
|
#
|
|
11
11
|
# false:
|
|
12
12
|
# * if command was not successful
|
|
@@ -27,8 +27,10 @@ RSpec::Matchers.define :be_successfully_executed do
|
|
|
27
27
|
|
|
28
28
|
expect(@old_actual).to have_exit_status(0)
|
|
29
29
|
end
|
|
30
|
-
end
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
failure_message do |_actual|
|
|
32
|
+
"Expected `#{@actual}` to succeed but got non-zero exit status and the following output:\n\n#{@old_actual.output}\n"
|
|
33
|
+
end
|
|
34
34
|
end
|
|
35
|
+
|
|
36
|
+
RSpec::Matchers.define_negated_matcher :have_failed_running, :be_successfully_executed
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# @param [Integer] status
|
|
5
5
|
# The value of the exit status
|
|
6
6
|
#
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] The result
|
|
8
8
|
#
|
|
9
9
|
# false:
|
|
10
10
|
# * if command does not have exit status
|
|
@@ -23,16 +23,26 @@ RSpec::Matchers.define :have_exit_status do |expected|
|
|
|
23
23
|
@old_actual.stop
|
|
24
24
|
@actual = actual.exit_status
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
raise "Expected #{@old_actual} to respond to #exit_status" unless @old_actual.respond_to? :exit_status
|
|
27
27
|
|
|
28
28
|
values_match? expected, @actual
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
failure_message do |actual|
|
|
32
|
-
format(
|
|
32
|
+
format(
|
|
33
|
+
%(expected that command "%s" has exit status of "%s", but has "%s".),
|
|
34
|
+
@old_actual.commandline,
|
|
35
|
+
expected.to_s,
|
|
36
|
+
actual.to_s
|
|
37
|
+
)
|
|
33
38
|
end
|
|
34
39
|
|
|
35
40
|
failure_message_when_negated do |actual|
|
|
36
|
-
format(
|
|
41
|
+
format(
|
|
42
|
+
%(expected that command "%s" does not have exit status of "%s", but has "%s".),
|
|
43
|
+
@old_actual.commandline,
|
|
44
|
+
expected.to_s,
|
|
45
|
+
actual.to_s
|
|
46
|
+
)
|
|
37
47
|
end
|
|
38
48
|
end
|
|
@@ -4,7 +4,7 @@ require 'rspec/expectations/version'
|
|
|
4
4
|
# This matchers checks if <command> run too long. Say the timeout is 10
|
|
5
5
|
# seconds and it takes <command> to finish in 15. This matchers will succeed.
|
|
6
6
|
#
|
|
7
|
-
# @return [
|
|
7
|
+
# @return [Boolean] The result
|
|
8
8
|
#
|
|
9
9
|
# false:
|
|
10
10
|
# * if command not to run too long
|
|
@@ -24,7 +24,7 @@ RSpec::Matchers.define :have_finished_in_time do
|
|
|
24
24
|
@old_actual = actual
|
|
25
25
|
@actual = @old_actual.commandline
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
raise "Expected #{@old_actual} to respond to #timed_out?" unless @old_actual.respond_to? :timed_out?
|
|
28
28
|
|
|
29
29
|
@old_actual.stop
|
|
30
30
|
|
|
@@ -32,6 +32,4 @@ RSpec::Matchers.define :have_finished_in_time do
|
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
RSpec::Matchers.define_negated_matcher :run_too_long, :have_finished_in_time
|
|
37
|
-
end
|
|
35
|
+
RSpec::Matchers.define_negated_matcher :run_too_long, :have_finished_in_time
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
require 'aruba/matchers/base/message_indenter'
|
|
2
|
+
|
|
1
3
|
# @!method have_output
|
|
2
4
|
# This matchers checks if <command> has created output
|
|
3
5
|
#
|
|
4
|
-
# @return [
|
|
6
|
+
# @return [Boolean] The result
|
|
5
7
|
#
|
|
6
8
|
# false:
|
|
7
9
|
# * if command has not created output
|
|
@@ -17,7 +19,7 @@ RSpec::Matchers.define :have_output do |expected|
|
|
|
17
19
|
match do |actual|
|
|
18
20
|
@old_actual = actual
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
raise "Expected #{@old_actual} to respond to #output" unless @old_actual.respond_to? :output
|
|
21
23
|
|
|
22
24
|
@old_actual.stop
|
|
23
25
|
|
|
@@ -29,8 +31,11 @@ RSpec::Matchers.define :have_output do |expected|
|
|
|
29
31
|
diffable
|
|
30
32
|
|
|
31
33
|
description { "have output: #{description_of expected}" }
|
|
32
|
-
end
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
failure_message do |_actual|
|
|
36
|
+
"expected `#{@old_actual.commandline}` to have output #{description_of expected}\n" \
|
|
37
|
+
"but was:\n#{Aruba::Matchers::Base::MessageIndenter.indent_multiline_message @actual}"
|
|
38
|
+
end
|
|
36
39
|
end
|
|
40
|
+
|
|
41
|
+
RSpec::Matchers.alias_matcher :a_command_having_output, :have_output
|