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
data/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright (c) 2010-2016 Aslak Hellesøy, David Chelimsky, Mike Sassak, Jarl Friis, Matt Wynne, Dennis Günnewig
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
[](http://badge.fury.io/rb/aruba)
|
|
2
|
+
[](https://gemnasium.com/cucumber/aruba)
|
|
3
|
+
[](https://codeclimate.com/github/cucumber/aruba)
|
|
4
|
+
[](https://gitter.im/cucumber/aruba?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
|
5
|
+
|
|
6
|
+
Build status:
|
|
7
|
+
|
|
8
|
+
Linux / OS X | Windows
|
|
9
|
+
------------- | -------------
|
|
10
|
+
[](https://travis-ci.org/cucumber/aruba) | [](https://ci.appveyor.com/project/cucumberbdd/aruba/branch/master)
|
|
11
|
+
|
|
12
|
+
`aruba` is an extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing of commandline applications meaningful, easy and fun.
|
|
13
|
+
|
|
14
|
+
Features at a glance:
|
|
15
|
+
|
|
16
|
+
* Test any command line application, implemented in any [programming
|
|
17
|
+
language](features/getting_started/supported_programming_languages.feature) -
|
|
18
|
+
e.g. Bash, Python, Ruby, Java, ...
|
|
19
|
+
* Manipulate the file system and the process environment
|
|
20
|
+
* Automatically reset state of file system and process environment between tests
|
|
21
|
+
|
|
22
|
+
## Install
|
|
23
|
+
|
|
24
|
+
Add this line to your application's `Gemfile`:
|
|
25
|
+
|
|
26
|
+
gem 'aruba'
|
|
27
|
+
|
|
28
|
+
And then execute:
|
|
29
|
+
|
|
30
|
+
$ bundle
|
|
31
|
+
|
|
32
|
+
Or install it yourself as:
|
|
33
|
+
|
|
34
|
+
$ gem install aruba
|
|
35
|
+
|
|
36
|
+
### Release Policy
|
|
37
|
+
|
|
38
|
+
We try to be compliant to [Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html).
|
|
39
|
+
|
|
40
|
+
### Supported ruby versions
|
|
41
|
+
|
|
42
|
+
For an up to date list of all supported ruby versions, please see our [`.travis.yml`](https://github.com/cucumber/aruba/blob/master/.travis.yml). We only test against the latest version of a version branch - most times.
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
Please also see this
|
|
47
|
+
[feature test](https://github.com/cucumber/aruba/blob/master/features/getting_started/supported_testing_frameworks.feature)
|
|
48
|
+
for the most up to date documentation.
|
|
49
|
+
|
|
50
|
+
### Initialize your project with "aruba"
|
|
51
|
+
|
|
52
|
+
There's an initializer to make it easier for you to getting started. If you
|
|
53
|
+
prefer to setup `aruba` yourself, please move on to the next section.
|
|
54
|
+
|
|
55
|
+
1. Go to your project's directory
|
|
56
|
+
|
|
57
|
+
2. Make sure, it's under version control and all changes are committed to your
|
|
58
|
+
version control repository
|
|
59
|
+
|
|
60
|
+
3. Run one of the following commands depending on the tools you use to test your project.
|
|
61
|
+
|
|
62
|
+
This assumes, that you use either `rspec`, `cucumber-ruby` or `minitest` to
|
|
63
|
+
write the tests for your project. Besides that, your tool can be implemented
|
|
64
|
+
in any programming language you like.
|
|
65
|
+
|
|
66
|
+
~~~bash
|
|
67
|
+
aruba init --test-framework rspec
|
|
68
|
+
aruba init --test-framework cucumber
|
|
69
|
+
aruba init --test-framework minitest
|
|
70
|
+
~~~
|
|
71
|
+
|
|
72
|
+
### Cucumber
|
|
73
|
+
|
|
74
|
+
1. Create a file named "features/support/env.rb" with:
|
|
75
|
+
|
|
76
|
+
~~~ruby
|
|
77
|
+
require 'aruba/cucumber'
|
|
78
|
+
~~~
|
|
79
|
+
|
|
80
|
+
2. Create a file named "features/use_aruba_with_cucumber.feature" with:
|
|
81
|
+
|
|
82
|
+
~~~ruby
|
|
83
|
+
Feature: Cucumber
|
|
84
|
+
Scenario: First Run
|
|
85
|
+
Given a file named "file.txt" with:
|
|
86
|
+
"""
|
|
87
|
+
Hello World
|
|
88
|
+
"""
|
|
89
|
+
Then the file "file.txt" should contain:
|
|
90
|
+
"""
|
|
91
|
+
Hello World
|
|
92
|
+
"""
|
|
93
|
+
~~~
|
|
94
|
+
|
|
95
|
+
3. Run `cucumber`
|
|
96
|
+
|
|
97
|
+
### RSpec
|
|
98
|
+
|
|
99
|
+
1. Create a file named "spec/support/aruba.rb" with:
|
|
100
|
+
|
|
101
|
+
~~~ruby
|
|
102
|
+
require 'aruba/rspec'
|
|
103
|
+
~~~
|
|
104
|
+
|
|
105
|
+
2. Create a file named "spec/spec_helper.rb" with:
|
|
106
|
+
|
|
107
|
+
~~~ruby
|
|
108
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
109
|
+
|
|
110
|
+
if RUBY_VERSION < '1.9.3'
|
|
111
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
|
|
112
|
+
else
|
|
113
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
|
114
|
+
end
|
|
115
|
+
~~~
|
|
116
|
+
|
|
117
|
+
3. Create a file named named "spec/use_aruba_with_rspec_spec.rb" with:
|
|
118
|
+
|
|
119
|
+
~~~ruby
|
|
120
|
+
require 'spec_helper'
|
|
121
|
+
|
|
122
|
+
RSpec.describe 'First Run', :type => :aruba do
|
|
123
|
+
let(:file) { 'file.txt' }
|
|
124
|
+
let(:content) { 'Hello World' }
|
|
125
|
+
|
|
126
|
+
before(:each) { write_file file, content }
|
|
127
|
+
|
|
128
|
+
it { expect(read(file)).to eq [content] }
|
|
129
|
+
end
|
|
130
|
+
~~~
|
|
131
|
+
|
|
132
|
+
4. Run `rspec`
|
|
133
|
+
|
|
134
|
+
### Minitest
|
|
135
|
+
|
|
136
|
+
1. Add a file named "test/support/aruba.rb" with:
|
|
137
|
+
|
|
138
|
+
~~~ ruby
|
|
139
|
+
require 'aruba/api'
|
|
140
|
+
~~~
|
|
141
|
+
|
|
142
|
+
2. Add a file named "test/test_helper.rb" with:
|
|
143
|
+
|
|
144
|
+
~~~ruby
|
|
145
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
|
146
|
+
|
|
147
|
+
if RUBY_VERSION < '1.9.3'
|
|
148
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require File.join(File.dirname(f), File.basename(f, '.rb')) }
|
|
149
|
+
else
|
|
150
|
+
::Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
|
151
|
+
end
|
|
152
|
+
~~~
|
|
153
|
+
|
|
154
|
+
3. Add a file named "test/use_aruba_with_minitest.rb" with:
|
|
155
|
+
|
|
156
|
+
~~~ruby
|
|
157
|
+
$LOAD_PATH.unshift File.expand_path('../test', __FILE__)
|
|
158
|
+
|
|
159
|
+
require 'test_helper'
|
|
160
|
+
require 'minitest/autorun'
|
|
161
|
+
|
|
162
|
+
class FirstRun < Minitest::Test
|
|
163
|
+
include Aruba::Api
|
|
164
|
+
|
|
165
|
+
def setup
|
|
166
|
+
aruba_setup
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def getting_started_with_aruba
|
|
170
|
+
file = 'file.txt'
|
|
171
|
+
content = 'Hello World'
|
|
172
|
+
|
|
173
|
+
write_file file, content
|
|
174
|
+
read(file).must_equal [content]
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
~~~
|
|
178
|
+
|
|
179
|
+
4. Run your tests
|
|
180
|
+
|
|
181
|
+
`ruby -Ilib:test test/use_aruba_with_minitest.rb`
|
|
182
|
+
|
|
183
|
+
## Documentation
|
|
184
|
+
|
|
185
|
+
### User Documentation
|
|
186
|
+
|
|
187
|
+
If you're interested in our steps and API, please browse our [feature
|
|
188
|
+
files](https://github.com/cucumber/aruba/tree/master/features). You can find a
|
|
189
|
+
lot of examples there. A good starting point are [Getting
|
|
190
|
+
Started](https://github.com/cucumber/aruba/tree/master/features/getting_started)
|
|
191
|
+
and [Step
|
|
192
|
+
Overview](https://github.com/cucumber/aruba/blob/master/features/steps/overview.feature).
|
|
193
|
+
A more or less full list of our steps can be found
|
|
194
|
+
[here](https://github.com/cucumber/aruba/tree/master/features/steps). Our API
|
|
195
|
+
is documentated
|
|
196
|
+
[here](https://github.com/cucumber/aruba/tree/master/features/api) and some
|
|
197
|
+
more information about how to configure `aruba`, can be found
|
|
198
|
+
[here](https://github.com/cucumber/aruba/tree/master/features/configuration).
|
|
199
|
+
The "RSpec" matchers provided by `aruba`, are documented
|
|
200
|
+
[here](https://github.com/cucumber/aruba/tree/master/features/matchers).
|
|
201
|
+
|
|
202
|
+
You can find our documentation on
|
|
203
|
+
[Relish](http://www.relishapp.com/cucumber/aruba/docs) as well. Unfortunately
|
|
204
|
+
"Relish" does not like the way we structered our feature tests. So this
|
|
205
|
+
documentation found there may be not complete.
|
|
206
|
+
|
|
207
|
+
### Developer Documentation
|
|
208
|
+
|
|
209
|
+
`aruba` provides a wonderful API to be used in your tests:
|
|
210
|
+
|
|
211
|
+
* Creating files/directories
|
|
212
|
+
* Deleting files/directories
|
|
213
|
+
* Checking file size
|
|
214
|
+
* Checking file existence/absence
|
|
215
|
+
* ...
|
|
216
|
+
|
|
217
|
+
A full documentation of the API can be found
|
|
218
|
+
[here](http://www.rubydoc.info/github/cucumber/aruba/master/frames).
|
|
219
|
+
|
|
220
|
+
## Contributing
|
|
221
|
+
|
|
222
|
+
Please see the [CONTRIBUTING](CONTRIBUTING.md) file.
|
|
223
|
+
|
|
224
|
+
## Copyright
|
|
225
|
+
|
|
226
|
+
Copyright (c) 2010-2016 Aslak Hellesøy et al. See [MIT License](LICENSE) for details.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require 'rubygems'
|
|
3
|
+
require 'bundler'
|
|
4
|
+
Bundler.setup
|
|
5
|
+
Bundler::GemHelper.install_tasks
|
|
6
|
+
|
|
7
|
+
require 'cucumber/rake/task'
|
|
8
|
+
|
|
9
|
+
Cucumber::Rake::Task.new do |t|
|
|
10
|
+
t.cucumber_opts = ""
|
|
11
|
+
# t.cucumber_opts = "--format Cucumber::Pro --out cucumber-pro.log" if ENV['CUCUMBER_PRO_TOKEN']
|
|
12
|
+
t.cucumber_opts << "--format pretty"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
Cucumber::Rake::Task.new(:cucumber_wip) do |t|
|
|
16
|
+
t.cucumber_opts = "-p wip"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
require 'rspec/core/rake_task'
|
|
20
|
+
desc "Run RSpec"
|
|
21
|
+
RSpec::Core::RakeTask.new do |spec|
|
|
22
|
+
spec.rspec_opts = ['--color', '--format documentation', '--warnings']
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
namespace :travis do
|
|
26
|
+
desc 'Lint travis.yml'
|
|
27
|
+
task :lint do
|
|
28
|
+
begin
|
|
29
|
+
require 'travis/yaml'
|
|
30
|
+
|
|
31
|
+
puts 'Linting .travis.yml ... No output is good!'
|
|
32
|
+
Travis::Yaml.parse! File.read('.travis.yml')
|
|
33
|
+
rescue LoadError
|
|
34
|
+
$stderr.puts 'You ruby is not supported for linting the .travis.yml'
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
task :rubocop do
|
|
40
|
+
begin
|
|
41
|
+
sh 'rubocop --fail-level E'
|
|
42
|
+
rescue
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
desc "Run tests, both RSpec and Cucumber"
|
|
47
|
+
task :test => [ 'travis:lint', :rubocop, :spec, :cucumber, :cucumber_wip]
|
|
48
|
+
|
|
49
|
+
task :default => :test
|
data/TODO.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
* Replace check filesystem permissons through a better rspec matcher
|
|
2
|
+
* Improve documentation for matchers in file
|
|
3
|
+
* Cleanup stdout/stderr in spawn process:
|
|
4
|
+
It should be enough to use 'open(@process.io.stdout).read' and 'open(@process.io.stderr).read'. There's no need to rewind them.
|
|
5
|
+
* Ensure that all processes are kill after cucumber is finished
|
|
6
|
+
* Add variation of check and stop of command if output contains
|
|
7
|
+
Add something like `(?: of last command)?`. If this is true, just check the last command.
|
|
8
|
+
* Use aruba.config.exit_timeout everywhere
|
|
9
|
+
* Fix problem with long running commands in background:
|
|
10
|
+
|
|
11
|
+
Since we need to stop all commands to access the status of the last command
|
|
12
|
+
stopped, we have problems with long running commands
|
|
13
|
+
|
data/appveyor.yml
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
version: "{build}"
|
|
2
|
+
|
|
3
|
+
# This will build all PRs targetting matching branches.
|
|
4
|
+
# Without this, each PR builds twice -- once for the PR branch HEAD,
|
|
5
|
+
# and once for the merge commit that github creates for each mergable PR.
|
|
6
|
+
branches:
|
|
7
|
+
only:
|
|
8
|
+
- master
|
|
9
|
+
|
|
10
|
+
# Disable normal Windows builds in favor of our test script.
|
|
11
|
+
build: off
|
|
12
|
+
|
|
13
|
+
install:
|
|
14
|
+
- SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
|
|
15
|
+
- ruby --version
|
|
16
|
+
- gem --version
|
|
17
|
+
- gem install bundler
|
|
18
|
+
- bundler --version
|
|
19
|
+
- bundle install
|
|
20
|
+
- cinst ansicon
|
|
21
|
+
|
|
22
|
+
test_script:
|
|
23
|
+
- bundle exec rake test --trace
|
|
24
|
+
|
|
25
|
+
environment:
|
|
26
|
+
matrix:
|
|
27
|
+
- ruby_version: '18'
|
|
28
|
+
- ruby_version: '19'
|
|
29
|
+
- ruby_version: '20'
|
|
30
|
+
- ruby_version: '21'
|
|
31
|
+
- ruby_version: '22'
|
|
32
|
+
|
data/aruba.gemspec
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
lib = ::File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'aruba/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = 'aruba-win-fix'
|
|
8
|
+
s.version = Aruba::VERSION
|
|
9
|
+
s.authors = ["Aslak Hellesøy", "David Chelimsky", "Mike Sassak", "Matt Wynne", "Jarl Friis", "Dennis Günnewig"]
|
|
10
|
+
s.description = 'Fork of cucumber/aruba with fixes for broken Windows support'
|
|
11
|
+
s.summary = "aruba-#{s.version}"
|
|
12
|
+
s.license = 'MIT'
|
|
13
|
+
s.email = 'cukes@googlegroups.com'
|
|
14
|
+
s.homepage = 'http://github.com/rbld/aruba'
|
|
15
|
+
|
|
16
|
+
s.add_runtime_dependency 'cucumber', '>= 1.3.19'
|
|
17
|
+
s.add_runtime_dependency 'childprocess', '~> 0.5.6'
|
|
18
|
+
s.add_runtime_dependency 'ffi', '~> 1.9.10'
|
|
19
|
+
s.add_runtime_dependency 'rspec-expectations', '>= 2.99'
|
|
20
|
+
s.add_runtime_dependency 'contracts', '~> 0.9'
|
|
21
|
+
s.add_runtime_dependency 'thor', '~> 0.19'
|
|
22
|
+
|
|
23
|
+
s.add_development_dependency 'bundler', '~> 1.11'
|
|
24
|
+
|
|
25
|
+
s.rubygems_version = ">= 1.6.1"
|
|
26
|
+
|
|
27
|
+
if Aruba::VERSION >= '1'
|
|
28
|
+
s.required_ruby_version = '>= 1.9.3'
|
|
29
|
+
else
|
|
30
|
+
s.required_ruby_version = '>= 1.8.7'
|
|
31
|
+
|
|
32
|
+
s.post_install_message = <<-EOS
|
|
33
|
+
Use on ruby 1.8.7
|
|
34
|
+
* Make sure you add something like that to your `Gemfile`. Otherwise you will
|
|
35
|
+
get cucumber > 2 and this will fail on ruby 1.8.7
|
|
36
|
+
|
|
37
|
+
gem 'cucumber', '~> 1.3.20'
|
|
38
|
+
|
|
39
|
+
With aruba >= 1.0 there will be breaking changes. Make sure to read https://github.com/cucumber/aruba/blob/master/History.md for 1.0.0
|
|
40
|
+
EOS
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
s.files = `git ls-files`.split("\n")
|
|
44
|
+
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
|
45
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
46
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
|
47
|
+
s.require_path = "lib"
|
|
48
|
+
end
|
data/bin/aruba
ADDED
data/config/.gitignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
aruba-rvm.yml
|
data/cucumber.yml
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<%
|
|
2
|
+
$LOAD_PATH << ::File.expand_path('../lib', __FILE__)
|
|
3
|
+
require 'aruba/version'
|
|
4
|
+
require 'ffi'
|
|
5
|
+
|
|
6
|
+
java_version = (RUBY_DESCRIPTION.match(/.*?on.*?(1\.[\d]\..*? )/))[1] if defined?(JRUBY_VERSION)
|
|
7
|
+
|
|
8
|
+
std_opts = "--color --exclude features/fixtures --require features --tags ~@unsupported-on"
|
|
9
|
+
java_default_opts = "--tags ~@wip-jruby-java-1.6" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
|
|
10
|
+
java_wip_opts = "--tags @wip-jruby-java-1.6:3" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
|
|
11
|
+
|
|
12
|
+
ignore_opts = []
|
|
13
|
+
ignore_opts << '--tags ~@ignore'
|
|
14
|
+
ignore_opts << '--tags ~@unsupported-on-platform-java' if RUBY_PLATFORM.include? 'java'
|
|
15
|
+
ignore_opts << '--tags ~@unsupported-on-platform-mri' if !RUBY_PLATFORM.include? 'java'
|
|
16
|
+
ignore_opts << '--tags ~@unsupported-on-platform-windows' if FFI::Platform.windows?
|
|
17
|
+
ignore_opts << '--tags ~@unsupported-on-platform-unix' if FFI::Platform.unix?
|
|
18
|
+
ignore_opts << '--tags ~@unsupported-on-platform-mac' if FFI::Platform.mac?
|
|
19
|
+
ignore_opts << '--tags ~@unsupported-on-ruby-older-2' if RUBY_VERSION < '2'
|
|
20
|
+
ignore_opts << '--tags ~@unsupported-on-ruby-older-193' if RUBY_VERSION < '1.9.3'
|
|
21
|
+
ignore_opts << '--tags ~@unsupported-on-ruby-older-19' if RUBY_VERSION < '1.9'
|
|
22
|
+
ignore_opts << '--tags ~@requires-aruba-version-1' if Aruba::VERSION < '1'
|
|
23
|
+
ignore_opts = ignore_opts.join(' ')
|
|
24
|
+
%>
|
|
25
|
+
default: <%= std_opts %> --tags ~@wip <%= java_default_opts %> <%= ignore_opts %>
|
|
26
|
+
wip: <%= std_opts %> --wip --tags @wip:3 <%= java_wip_opts %> <%= ignore_opts %>
|
data/features/.nav
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
- README.md
|
|
2
|
+
- getting_started (Getting Started):
|
|
3
|
+
- install.feature (Install Aruba)
|
|
4
|
+
- supported_programming_languages.feature (Supportet Programming Languages)
|
|
5
|
+
- ruby_api (Ruby API):
|
|
6
|
+
- expand_path.feature (#expand_path)
|
|
7
|
+
- cleanup_aruba_directory.feature (#setup_aruba)
|
|
8
|
+
- run.feature (#run)
|
|
9
|
+
- which.feature (#which)
|
|
10
|
+
- append_environment_variable.feature (#append_environment_variable)
|
|
11
|
+
- prepend_environment_variable.feature (#prepend_environment_variable)
|
|
12
|
+
- set_environment_variable.feature (#set_environment_variable)
|
|
13
|
+
- cd.feature (#cd)
|
|
14
|
+
- create_directory.feature (#create_directory)
|
|
15
|
+
- disk_usage.feature (#disk_usage)
|
|
16
|
+
- does_exist.feature (#exist?)
|
|
17
|
+
- is_absolute.feature (#absolute?)
|
|
18
|
+
- filesystem/is_directory.feature (#directory?)
|
|
19
|
+
- is_file.feature (#file?)
|
|
20
|
+
- is_relative.feature(#relative?)
|
|
21
|
+
- move.feature (#move)
|
|
22
|
+
- file_system_commands.feature
|
|
23
|
+
- command.feature (Before Hook)
|
|
24
|
+
- command.feature (After Hook)
|
|
25
|
+
- cucumber (Cucumber):
|
|
26
|
+
- debug_command.feature (Debug Commmands)
|
|
27
|
+
- environment_variables.feature (Environment Variables)
|
|
28
|
+
- flushing.feature (Flush Output)
|
|
29
|
+
- interactive.feature (Interactive Commands)
|
|
30
|
+
- all_output.feature (Command Output)
|
|
31
|
+
- stdout.feature (STDOUT)
|
|
32
|
+
- configuration (Configuration):
|
|
33
|
+
- exit_timeout.feature (Exit Timeout)
|
|
34
|
+
- fixtures_directories.feature (Fixtures Directories)
|
|
35
|
+
- fixtures_path_prefix.feature (Fixture Path Prefix)
|
|
36
|
+
- home_directory.feature (Home Directory)
|
|
37
|
+
- io_timeout.feature (IO Wait Timeout)
|
|
38
|
+
- keep_ansi.feature (Keep ANSI output)
|
|
39
|
+
- log_level.feature (Log Level)
|
|
40
|
+
- physical_block_size.feature (Physical Block Size)
|
|
41
|
+
- root_directory.feature (Root Directory)
|
|
42
|
+
- working_directory.feature (Working Directory)
|
|
43
|
+
- rspec (RSpec):
|
|
44
|
+
- getting_started.feature (Integration)
|
|
45
|
+
- include_an_object.feature (Matcher: Include an Object)
|
|
46
|
+
- have_sub_directory.feature (Matcher: Have Sub Directory)
|
|
47
|
+
- be_existing_file.feature (Matcher: Be Existing File)
|
|
48
|
+
- have_file_content.feature (Matcher: Have File Content)
|
|
49
|
+
- have_file_size.feature (Matcher: Have File Size)
|
|
50
|
+
- be_an_absolute_path.feature (Matcher: Be Absolute Path)
|
|
51
|
+
- be_an_existing_path.feature (Matcher: Be Existing Path)
|
|
52
|
+
- have_permissions.feature (Matcher: Have Permissions)
|
|
53
|
+
- timeouts.feature (Matcher: Timeouts)
|
|
54
|
+
- cucumber (Cucumber):
|
|
55
|
+
- announce.feature (Announce Information to User)
|
|
56
|
+
- exit_statuses.feature (Exit Status of Commands)
|
|
57
|
+
- in_process.feature (Start Commands in Process)
|
|
58
|
+
- run.feature (Run Commands)
|
|
59
|
+
- home_variable.feature (Modify HOME-Variable)
|
|
60
|
+
- set_environment_variable.feature (Set Environment variables)
|
|
61
|
+
- copy.feature (Copy files/directories)
|
|
62
|
+
- create_directory.feature (Create Directories)
|
|
63
|
+
- create_file.feature (Create Files)
|
|
64
|
+
- file_content.feature (Use File Content)
|
|
65
|
+
- move.feature (Move files/directories)
|
|
66
|
+
- overwrite_file.feature (Overwrite Files)
|
|
67
|
+
- use_fixture.feature (Use Fixtures)
|
|
68
|
+
- output.feature (Output)
|
|
69
|
+
- utf-8.feature (Support for UTF-8-strings)
|
|
70
|
+
- development (Development):
|
|
71
|
+
- build.feature (Build Aruba)
|
|
72
|
+
- test.feature (Test Aruba)
|