aruba 0.9.0.pre → 0.9.0.pre2
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/Gemfile +8 -3
- data/History.md +61 -19
- data/README.md +10 -6
- data/TODO.md +6 -1
- data/cucumber.yml +10 -6
- data/features/.nav +72 -0
- data/features/announce.feature +203 -0
- data/features/api/command/extract_text.feature +10 -0
- data/features/api/command/run.feature +6 -6
- data/features/api/command/stop_all_commands.feature +53 -0
- data/features/api/command/terminate_all_commands.feature +53 -0
- data/features/api/command/unescape_text.feature +12 -0
- data/features/api/command/which.feature +3 -3
- data/features/api/core/expand_path.feature +4 -4
- data/features/api/environment/append_environment_variable.feature +18 -8
- data/features/api/environment/prepend_environment_variable.feature +18 -8
- data/features/api/environment/set_environment_variable.feature +33 -16
- data/features/api/filesystem/cd.feature +23 -13
- data/features/api/filesystem/create_directory.feature +2 -2
- data/features/api/filesystem/disk_usage.feature +7 -6
- data/features/api/filesystem/does_exist.feature +2 -2
- data/features/api/filesystem/is_absolute.feature +2 -2
- data/features/api/filesystem/is_directory.feature +2 -2
- data/features/api/filesystem/is_file.feature +2 -2
- data/features/api/filesystem/is_relative.feature +2 -2
- data/features/api/filesystem/move.feature +119 -0
- data/features/cli/console.feature +3 -3
- data/features/commands/debug_command.feature +93 -0
- data/features/commands/environment_variables.feature +64 -0
- data/features/commands/flushing.feature +74 -0
- data/features/commands/interactive.feature +90 -0
- data/features/commands/output/all_output.feature +445 -0
- data/features/commands/output/stdout.feature +66 -0
- data/features/configuration/exit_timeout.feature +5 -5
- data/features/configuration/fixtures_directories.feature +3 -3
- data/features/configuration/fixtures_path_prefix.feature +1 -1
- data/features/configuration/home_directory.feature +4 -4
- data/features/configuration/io_timeout.feature +2 -2
- data/features/configuration/keep_ansi.feature +2 -2
- data/features/configuration/log_level.feature +3 -3
- data/features/configuration/physical_block_size.feature +3 -3
- data/features/configuration/usage.feature +159 -0
- data/features/core/cleanup_aruba_directory.feature +52 -0
- data/features/development/build.feature +16 -0
- data/features/development/test.feature +24 -0
- data/features/file_system_commands.feature +12 -12
- data/features/getting_started/supported_programming_languages.feature +89 -0
- data/features/hooks/after/command.feature +1 -1
- data/features/hooks/before/command.feature +2 -2
- data/features/matchers/collection/include_an_object.feature +72 -0
- data/features/matchers/timeouts.feature +2 -2
- data/features/output.feature +60 -181
- data/features/step_definitions/aruba_dev_steps.rb +17 -10
- data/features/step_definitions/hooks.rb +11 -0
- data/features/steps/commands/exit_statuses.feature +3 -3
- data/features/steps/commands/run.feature +0 -15
- data/features/steps/filesystem/copy.feature +45 -0
- data/features/steps/filesystem/create_directory.feature +47 -0
- data/features/steps/filesystem/create_file.feature +53 -0
- data/features/steps/filesystem/file_content.feature +1 -1
- data/features/steps/filesystem/move.feature +45 -0
- data/features/steps/filesystem/overwrite_file.feature +72 -0
- data/features/steps/filesystem/use_fixture.feature +77 -0
- data/features/usage/install.feature +8 -0
- data/{features/fixtures → fixtures}/cli-app/.gitignore +0 -0
- data/{features/fixtures → fixtures}/cli-app/.rspec +0 -0
- data/{features/fixtures → fixtures}/cli-app/README.md +0 -0
- data/{features/fixtures → fixtures}/cli-app/Rakefile +0 -0
- data/{features/fixtures → fixtures}/cli-app/bin/cli +0 -0
- data/{features/fixtures → fixtures}/cli-app/cli-app.gemspec +0 -0
- data/{features/fixtures → fixtures}/cli-app/features/support/env.rb +0 -0
- data/{features/fixtures → fixtures}/cli-app/lib/cli/app.rb +0 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
- data/{features/fixtures → fixtures}/cli-app/lib/cli/app/version.rb +0 -0
- data/{features/fixtures/empty-app → fixtures/cli-app}/script/console +3 -3
- data/{features/fixtures → fixtures}/cli-app/spec/spec_helper.rb +0 -0
- data/{features/fixtures → fixtures}/cli-app/spec/support/aruba.rb +0 -0
- data/{features/fixtures → fixtures}/copy/file.txt +0 -0
- data/{features/fixtures → fixtures}/empty-app/.gitignore +0 -0
- data/{features/fixtures → fixtures}/empty-app/.rspec +0 -0
- data/{features/fixtures → fixtures}/empty-app/README.md +0 -0
- data/{features/fixtures → fixtures}/empty-app/Rakefile +0 -0
- data/{features/fixtures → fixtures}/empty-app/bin/cli +0 -0
- data/{features/fixtures → fixtures}/empty-app/cli-app.gemspec +0 -0
- data/{features/fixtures → fixtures}/empty-app/lib/cli/app.rb +0 -0
- data/{features/fixtures → fixtures}/empty-app/lib/cli/app/version.rb +0 -0
- data/{features/fixtures/cli-app → fixtures/empty-app}/script/console +3 -3
- data/{features/fixtures → fixtures}/empty-app/spec/spec_helper.rb +0 -0
- data/{features/fixtures → fixtures}/fixtures-app/test.txt +0 -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/{features/fixtures → fixtures}/spawn_process/stderr.sh +0 -0
- data/lib/aruba/announcer.rb +6 -2
- data/lib/aruba/api.rb +0 -16
- data/lib/aruba/api/command.rb +64 -266
- data/lib/aruba/api/core.rb +24 -26
- data/lib/aruba/api/deprecated.rb +370 -12
- data/lib/aruba/api/filesystem.rb +64 -15
- data/lib/aruba/aruba_path.rb +4 -0
- data/lib/aruba/config.rb +1 -1
- data/lib/aruba/cucumber.rb +5 -449
- data/lib/aruba/cucumber/command.rb +378 -0
- data/lib/aruba/cucumber/core.rb +29 -0
- data/lib/aruba/cucumber/environment.rb +30 -0
- data/lib/aruba/cucumber/file.rb +210 -0
- data/lib/aruba/cucumber/hooks.rb +11 -14
- data/lib/aruba/cucumber/rvm.rb +3 -0
- data/lib/aruba/matchers/base/base_matcher.rb +94 -0
- data/lib/aruba/matchers/collection.rb +1 -0
- data/lib/aruba/matchers/collection/all_objects.rb +2 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +120 -0
- data/lib/aruba/matchers/command/be_successfully_executed.rb +3 -3
- data/lib/aruba/matchers/command/have_exit_status.rb +2 -11
- data/lib/aruba/matchers/command/have_finished_in_time.rb +5 -5
- data/lib/aruba/matchers/command/have_output.rb +46 -0
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +42 -0
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +42 -0
- data/lib/aruba/matchers/command/have_output_size.rb +28 -0
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +1 -1
- data/lib/aruba/matchers/file/be_an_existing_file.rb +1 -1
- data/lib/aruba/matchers/file/have_file_content.rb +1 -1
- data/lib/aruba/matchers/file/have_file_size.rb +2 -2
- data/lib/aruba/matchers/file/have_same_file_content.rb +1 -1
- data/lib/aruba/matchers/path/have_permissions.rb +1 -1
- data/lib/aruba/platforms/aruba_file_creator.rb +2 -3
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -3
- data/lib/aruba/platforms/determine_disk_usage.rb +23 -0
- data/lib/aruba/platforms/determine_file_size.rb +13 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +11 -0
- data/lib/aruba/platforms/local_environment.rb +15 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +1 -1
- data/lib/aruba/platforms/unix_platform.rb +35 -14
- data/lib/aruba/process_monitor.rb +53 -7
- data/lib/aruba/processes/basic_process.rb +25 -5
- data/lib/aruba/processes/debug_process.rb +27 -25
- data/lib/aruba/processes/in_process.rb +7 -22
- data/lib/aruba/processes/spawn_process.rb +74 -31
- data/lib/aruba/rspec.rb +1 -6
- data/lib/aruba/version.rb +1 -1
- data/script/console +0 -1
- 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_spec.rb +10 -7
- data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
- data/spec/aruba/matchers/command_spec.rb +135 -4
- data/spec/aruba/spawn_process_spec.rb +1 -1
- metadata +107 -65
- data/.nav +0 -12
- data/features/debug.feature +0 -15
- data/features/fixtures/cli-app/spec/cli/app_spec.rb +0 -7
- data/features/flushing.feature +0 -26
- data/features/interactive.feature +0 -66
- data/features/no_clobber.feature +0 -25
- data/lib/aruba/disk_usage_calculator.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f92ba90eaed6ac6f97ad8b43f5913fde2fb0f3a1
|
4
|
+
data.tar.gz: 1ab9079d180953f236b8529749303059a142cc85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ab6deff05d7a0366724279a055ce42296b7549b50cf8acd71b655823ad471d19ff3313001e1913da4ea2246f9bf06ff58284d1460dd5b535b947f457536c674
|
7
|
+
data.tar.gz: f234b29f5ae59ebc4ed1cc9939d4d358d3bd4d0ac3212c1a56f0151b4bc4743fe4cd623750e044dfba2417e46a79b1124c1b06e05a301a10ceda89989d000849
|
data/Gemfile
CHANGED
@@ -5,14 +5,12 @@ gemspec
|
|
5
5
|
|
6
6
|
# Debug aruba
|
7
7
|
group :debug do
|
8
|
-
gem 'pry', '~> 0.10.1'
|
9
|
-
|
10
8
|
if RUBY_VERSION >= '2' && !RUBY_PLATFORM.include?('java')
|
11
9
|
gem 'byebug', '~> 4.0.5'
|
12
10
|
gem 'pry-byebug', '~> 3.1.0'
|
13
11
|
end
|
14
12
|
|
15
|
-
if RUBY_VERSION < '2' && !RUBY_PLATFORM.include?('java')
|
13
|
+
if RUBY_VERSION < '2' && RUBY_VERSION > '1.9' && !RUBY_PLATFORM.include?('java')
|
16
14
|
gem 'debugger', '~> 1.6.8'
|
17
15
|
gem 'pry-debugger', '~> 0.2.3'
|
18
16
|
end
|
@@ -25,6 +23,13 @@ group :debug do
|
|
25
23
|
end
|
26
24
|
|
27
25
|
group :development, :test do
|
26
|
+
# we use this to demonstrate interactive debugging within our feature tests
|
27
|
+
if RUBY_VERSION >= '2'
|
28
|
+
gem 'pry', '~> 0.10.1'
|
29
|
+
else
|
30
|
+
gem 'pry', '~>0.9.12'
|
31
|
+
end
|
32
|
+
|
28
33
|
# Run development tasks
|
29
34
|
gem 'rake', '~> 10.4.2'
|
30
35
|
|
data/History.md
CHANGED
@@ -1,5 +1,25 @@
|
|
1
1
|
# Latest Release
|
2
2
|
|
3
|
+
## [v0.9.0.pre](https://github.com/cucumber/aruba/compare/v0.8.1...v0.9.0.pre)
|
4
|
+
|
5
|
+
* Improve documentation for filesystem api and move it to feature tests
|
6
|
+
* Add logger to aruba. Its output can be captured by rspec.
|
7
|
+
* Fix incorrect deprecation message for check_file_presence (issue #292)
|
8
|
+
* Fix for Gemfile excludes windows for many gems (issue #282)
|
9
|
+
* Make feature tests compatible with ruby 1.9.2
|
10
|
+
* Gather disk usage for file(s) (issue #294)
|
11
|
+
* Replace keep_ansi-config option by remove_ansi_escape_sequences-option
|
12
|
+
* Split up `#unescape` into `#extract_text` and `#unescape_text`
|
13
|
+
* Use `UnixPlatform` and `WindowsPlatform` to make code for different platforms maintainable
|
14
|
+
* Work around `ENV`-bug in `Jruby` buy using `#dup` on `ENV.to_h` (issue jruby/jruby#3162)
|
15
|
+
* Speed up test on `JRuby` by using `--dev`-flag
|
16
|
+
* Work around problems when copying files with `cp` on MRI-ruby 1.9.2
|
17
|
+
* Add cmd.exe /c for SpawnProcess on Windows (issue #302)
|
18
|
+
* Split up `#which` for Windows and Unix/Linux (issue #304)
|
19
|
+
* Add `aruba console`-command to play around with aruba (issue 305)
|
20
|
+
|
21
|
+
# Old releases
|
22
|
+
|
3
23
|
## [v0.8.1](https://github.com/cucumber/aruba/compare/v0.8.0...v0.8.1)
|
4
24
|
|
5
25
|
* Fix problem if working directory of aruba does not exist (issue #286)
|
@@ -11,8 +31,6 @@
|
|
11
31
|
* Use prepend_environment_variable to modify PATH for rspec integration
|
12
32
|
* Add VERSION-constant to aruba and use it for code which should be activated on >= 1.0.0
|
13
33
|
|
14
|
-
# Old releases
|
15
|
-
|
16
34
|
## [v0.8.0](https://github.com/cucumber/aruba/compare/v0.8.0.pre3...v0.8.0)
|
17
35
|
* Build with cucumber 1.3.x on ruby 1.8.7, with cucumber 2.x on all other platforms
|
18
36
|
* Fixed bugs in aruba's cucumber steps
|
@@ -350,23 +368,25 @@
|
|
350
368
|
|
351
369
|
# Upcoming un-released versions
|
352
370
|
|
353
|
-
## [v0.9.0](https://github.com/cucumber/aruba/compare/v0.
|
354
|
-
|
355
|
-
*
|
356
|
-
|
357
|
-
*
|
358
|
-
|
359
|
-
*
|
360
|
-
*
|
361
|
-
*
|
362
|
-
*
|
363
|
-
*
|
364
|
-
|
365
|
-
*
|
366
|
-
|
367
|
-
*
|
368
|
-
*
|
369
|
-
|
371
|
+
## [v0.9.0.pre2](https://github.com/cucumber/aruba/compare/v0.9.0.pre...v0.9.0.pre2)
|
372
|
+
|
373
|
+
* Redefine #to_s and #inspect for BasicProcess to reduce the sheer amount of
|
374
|
+
information, if a command produces a lot of output
|
375
|
+
* Added new matcher `#all_objects` to check if an object is included + a error message for
|
376
|
+
failures which is similar to the `#all`-matcher of `RSpec`
|
377
|
+
* Add `have_output`-, `have_output_on_stderr`, `have_output_on_stdout`-matchers
|
378
|
+
* Replace all `assert_*` and `check_*`-methods through expectations
|
379
|
+
* Add hook `@announce-output` to output both, stderr and stdout
|
380
|
+
* Add a lot of documentation (issue #260)
|
381
|
+
* Replace `#last_command` through `#last_command_started` and
|
382
|
+
`#last_command_stopped` to make it more explicit
|
383
|
+
* Improve syntax highlighting in cucumber feature tests by adding programming
|
384
|
+
language to `"""`-blocks
|
385
|
+
* Rename tags `@ignore-*` to `@unsupported-on-*`
|
386
|
+
* Introduce our own `BaseMatcher`-class to remove the dependency to `RSpec`'s
|
387
|
+
private matcher APIs
|
388
|
+
* Now we make the process started via `SpawnProcess` the leader of the group to
|
389
|
+
kill all sub-processes more reliably
|
370
390
|
|
371
391
|
## [v1.0.0](https://github.com/cucumber/aruba/compare/v0.11.0...v1.0.0)
|
372
392
|
|
@@ -397,3 +417,25 @@
|
|
397
417
|
* Use different working directories based on test suite - RSpec, Cucumber.
|
398
418
|
It's `tmp/rspec` and `tmp/cucumber` now to make sure they do not overwrite
|
399
419
|
the test results from each other.
|
420
|
+
* The use of `@interactive` is discontinued. You need to use
|
421
|
+
`#last_command_started`-method to get access to the interactively started
|
422
|
+
command.
|
423
|
+
* If multiple commands have been started, each output has to be check
|
424
|
+
separately
|
425
|
+
|
426
|
+
```cucumber
|
427
|
+
Scenario: Detect stdout from all processes
|
428
|
+
When I run `printf "hello world!\n"`
|
429
|
+
And I run `cat` interactively
|
430
|
+
And I type "hola"
|
431
|
+
And I type ""
|
432
|
+
Then the stdout should contain:
|
433
|
+
"""
|
434
|
+
hello world!
|
435
|
+
"""
|
436
|
+
And the stdout should contain:
|
437
|
+
"""
|
438
|
+
hola
|
439
|
+
"""
|
440
|
+
And the stderr should not contain anything
|
441
|
+
```
|
data/README.md
CHANGED
@@ -115,15 +115,19 @@ can test those commands as though the gem were already installed.
|
|
115
115
|
|
116
116
|
If you need other directories to be added to the `PATH`, you can put the following in `features/support/env.rb`:
|
117
117
|
|
118
|
-
|
118
|
+
```ruby
|
119
|
+
Aruba.configure do |config|
|
120
|
+
config.command_search_paths = config.command_search_paths << '/my/special/bin/path'
|
121
|
+
end
|
122
|
+
```
|
119
123
|
|
120
124
|
### Increasing timeouts
|
121
125
|
|
122
|
-
A process sometimes takes longer than expected to terminate, and Aruba will kill them off (and fail your scenario) if it is still alive after 3 seconds. If you need more time you can modify the timeout by assigning a different value to
|
126
|
+
A process sometimes takes longer than expected to terminate, and Aruba will kill them off (and fail your scenario) if it is still alive after 3 seconds. If you need more time you can modify the timeout by assigning a different value to `#exit_timeout` in a `Aruba.configure` block:
|
123
127
|
|
124
128
|
```ruby
|
125
|
-
|
126
|
-
|
129
|
+
Aruba.configure do |config|
|
130
|
+
config.exit_timeout = 5
|
127
131
|
end
|
128
132
|
```
|
129
133
|
|
@@ -132,11 +136,11 @@ end
|
|
132
136
|
Running processes interactively can result in race conditions when Aruba executes an IO-related step
|
133
137
|
but the interactive process has not yet flushed or read some content. To help prevent this Aruba waits
|
134
138
|
before reading or writing to the process if it is still running. You can control the wait by setting
|
135
|
-
|
139
|
+
`aruba.config.io_wait_timeout` to an appropriate value. This is particularly useful with tags:
|
136
140
|
|
137
141
|
```ruby
|
138
142
|
Before('@slow_process') do
|
139
|
-
|
143
|
+
aruba.config.io_wait_timeout = 5
|
140
144
|
end
|
141
145
|
```
|
142
146
|
|
data/TODO.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
-
|
2
1
|
* Replace check filesystem permissons through a better rspec matcher
|
3
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
|
data/cucumber.yml
CHANGED
@@ -2,16 +2,20 @@
|
|
2
2
|
require 'ffi'
|
3
3
|
java_version = (RUBY_DESCRIPTION.match(/.*?on.*?(1\.[\d]\..*? )/))[1] if defined?(JRUBY_VERSION)
|
4
4
|
|
5
|
-
std_opts = "--color --exclude features/fixtures --require features"
|
5
|
+
std_opts = "--color --exclude features/fixtures --require features --tags ~@unsupported-on"
|
6
6
|
java_default_opts = "--tags ~@wip-jruby-java-1.6" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
|
7
7
|
java_wip_opts = "--tags @wip-jruby-java-1.6:3" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
|
8
8
|
|
9
9
|
ignore_opts = []
|
10
|
-
ignore_opts <<
|
11
|
-
ignore_opts <<
|
12
|
-
ignore_opts <<
|
13
|
-
ignore_opts <<
|
14
|
-
ignore_opts <<
|
10
|
+
ignore_opts << '--tags ~@ignore'
|
11
|
+
ignore_opts << '--tags ~@unsupported-on-platform-java' if RUBY_PLATFORM.include? 'java'
|
12
|
+
ignore_opts << '--tags ~@unsupported-on-platform-mri' if !RUBY_PLATFORM.include? 'java'
|
13
|
+
ignore_opts << '--tags ~@unsupported-on-platform-windows' if FFI::Platform.windows?
|
14
|
+
ignore_opts << '--tags ~@unsupported-on-platform-unix' if FFI::Platform.unix?
|
15
|
+
ignore_opts << '--tags ~@unsupported-on-platform-mac' if FFI::Platform.mac?
|
16
|
+
ignore_opts << '--tags ~@unsupported-on-ruby-older-2' if RUBY_VERSION < '2'
|
17
|
+
ignore_opts << '--tags ~@unsupported-on-ruby-older-193' if RUBY_VERSION < '1.9.3'
|
18
|
+
ignore_opts << '--tags ~@unsupported-on-ruby-older-19' if RUBY_VERSION < '1.9'
|
15
19
|
ignore_opts = ignore_opts.join(' ')
|
16
20
|
%>
|
17
21
|
default: <%= std_opts %> --tags ~@wip <%= java_default_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)
|
@@ -0,0 +1,203 @@
|
|
1
|
+
Feature: Announce output during test run
|
2
|
+
|
3
|
+
In order to specify expected output
|
4
|
+
As a developer using Cucumber
|
5
|
+
I want to use the "the output should contain" step
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use a fixture named "cli-app"
|
9
|
+
|
10
|
+
Scenario: Announce change of directory (deprecated)
|
11
|
+
Given a file named "features/exit_status.feature" with:
|
12
|
+
"""cucumber
|
13
|
+
Feature: Announce
|
14
|
+
@announce-dir
|
15
|
+
Scenario: Run command
|
16
|
+
Given a directory named "dir.d"
|
17
|
+
When I cd to "dir.d"
|
18
|
+
"""
|
19
|
+
When I run `cucumber`
|
20
|
+
Then the features should all pass
|
21
|
+
And the output should contain:
|
22
|
+
"""
|
23
|
+
$ cd /
|
24
|
+
"""
|
25
|
+
And the output should contain:
|
26
|
+
"""
|
27
|
+
tmp/aruba/dir.d
|
28
|
+
"""
|
29
|
+
|
30
|
+
Scenario: Announce change of directory
|
31
|
+
Given a file named "features/exit_status.feature" with:
|
32
|
+
"""cucumber
|
33
|
+
Feature: Announce
|
34
|
+
@announce-directory
|
35
|
+
Scenario: Run command
|
36
|
+
Given a directory named "dir.d"
|
37
|
+
When I cd to "dir.d"
|
38
|
+
"""
|
39
|
+
When I run `cucumber`
|
40
|
+
Then the features should all pass
|
41
|
+
And the output should contain:
|
42
|
+
"""
|
43
|
+
$ cd /
|
44
|
+
"""
|
45
|
+
And the output should contain:
|
46
|
+
"""
|
47
|
+
tmp/aruba/dir.d
|
48
|
+
"""
|
49
|
+
|
50
|
+
Scenario: Announce stdout
|
51
|
+
Given an executable named "bin/cli" with:
|
52
|
+
"""bash
|
53
|
+
#!/usr/bin/env bash
|
54
|
+
|
55
|
+
echo 'Hello World'
|
56
|
+
"""
|
57
|
+
And a file named "features/exit_status.feature" with:
|
58
|
+
"""cucumber
|
59
|
+
Feature: Announce
|
60
|
+
@announce-stdout
|
61
|
+
Scenario: Run command
|
62
|
+
When I run `cli`
|
63
|
+
Then the exit status should be 0
|
64
|
+
"""
|
65
|
+
When I run `cucumber`
|
66
|
+
Then the features should all pass
|
67
|
+
And the output should contain:
|
68
|
+
"""
|
69
|
+
<<-STDOUT
|
70
|
+
Hello World
|
71
|
+
|
72
|
+
STDOUT
|
73
|
+
"""
|
74
|
+
|
75
|
+
Scenario: Announce stderr
|
76
|
+
Given an executable named "bin/cli" with:
|
77
|
+
"""bash
|
78
|
+
#!/usr/bin/env bash
|
79
|
+
|
80
|
+
echo 'Hello World' >&2
|
81
|
+
"""
|
82
|
+
And a file named "features/exit_status.feature" with:
|
83
|
+
"""cucumber
|
84
|
+
Feature: Announce
|
85
|
+
@announce-stderr
|
86
|
+
Scenario: Run command
|
87
|
+
When I run `cli`
|
88
|
+
Then the exit status should be 0
|
89
|
+
"""
|
90
|
+
When I run `cucumber`
|
91
|
+
Then the features should all pass
|
92
|
+
And the output should contain:
|
93
|
+
"""
|
94
|
+
<<-STDERR
|
95
|
+
Hello World
|
96
|
+
|
97
|
+
STDERR
|
98
|
+
"""
|
99
|
+
|
100
|
+
Scenario: Announce both stderr and stdout
|
101
|
+
Given an executable named "bin/cli" with:
|
102
|
+
"""bash
|
103
|
+
#!/usr/bin/env bash
|
104
|
+
|
105
|
+
echo 'Hello' >&2
|
106
|
+
echo 'World'
|
107
|
+
"""
|
108
|
+
And a file named "features/exit_status.feature" with:
|
109
|
+
"""cucumber
|
110
|
+
Feature: Announce
|
111
|
+
@announce-output
|
112
|
+
Scenario: Run command
|
113
|
+
When I run `cli`
|
114
|
+
Then the exit status should be 0
|
115
|
+
"""
|
116
|
+
When I run `cucumber`
|
117
|
+
Then the features should all pass
|
118
|
+
And the output should contain:
|
119
|
+
"""
|
120
|
+
<<-STDERR
|
121
|
+
Hello
|
122
|
+
|
123
|
+
STDERR
|
124
|
+
"""
|
125
|
+
And the output should contain:
|
126
|
+
"""
|
127
|
+
<<-STDOUT
|
128
|
+
World
|
129
|
+
|
130
|
+
STDOUT
|
131
|
+
"""
|
132
|
+
|
133
|
+
Scenario: Announce command
|
134
|
+
Given an executable named "bin/cli" with:
|
135
|
+
"""bash
|
136
|
+
#!/usr/bin/env bash
|
137
|
+
|
138
|
+
echo 'Hello World'
|
139
|
+
"""
|
140
|
+
And a file named "features/exit_status.feature" with:
|
141
|
+
"""cucumber
|
142
|
+
Feature: Announce
|
143
|
+
@announce-cmd
|
144
|
+
Scenario: Run command
|
145
|
+
When I run `cli`
|
146
|
+
Then the exit status should be 0
|
147
|
+
"""
|
148
|
+
When I run `cucumber`
|
149
|
+
Then the features should all pass
|
150
|
+
And the output should contain:
|
151
|
+
"""
|
152
|
+
$ cli
|
153
|
+
"""
|
154
|
+
|
155
|
+
Scenario: Announce change of environment variable
|
156
|
+
Given an executable named "bin/cli" with:
|
157
|
+
"""bash
|
158
|
+
#!/usr/bin/env bash
|
159
|
+
|
160
|
+
echo 'Hello World'
|
161
|
+
"""
|
162
|
+
And a file named "features/exit_status.feature" with:
|
163
|
+
"""cucumber
|
164
|
+
Feature: Announce
|
165
|
+
@announce-env
|
166
|
+
Scenario: Run command
|
167
|
+
When I set the environment variables to:
|
168
|
+
| variable | value |
|
169
|
+
| MY_VAR | my_value |
|
170
|
+
And I run `cli`
|
171
|
+
Then the exit status should be 0
|
172
|
+
"""
|
173
|
+
When I run `cucumber`
|
174
|
+
Then the features should all pass
|
175
|
+
And the output should contain:
|
176
|
+
"""
|
177
|
+
$ export MY_VAR=my_value
|
178
|
+
"""
|
179
|
+
|
180
|
+
Scenario: Announce change of environment variable which contains special characters
|
181
|
+
Given an executable named "bin/cli" with:
|
182
|
+
"""bash
|
183
|
+
#!/usr/bin/env bash
|
184
|
+
|
185
|
+
echo 'Hello World'
|
186
|
+
"""
|
187
|
+
And a file named "features/exit_status.feature" with:
|
188
|
+
"""cucumber
|
189
|
+
Feature: Announce
|
190
|
+
@announce-env
|
191
|
+
Scenario: Run command
|
192
|
+
When I set the environment variables to:
|
193
|
+
| variable | value |
|
194
|
+
| MY_VAR | my value ! |
|
195
|
+
And I run `cli`
|
196
|
+
Then the exit status should be 0
|
197
|
+
"""
|
198
|
+
When I run `cucumber`
|
199
|
+
Then the features should all pass
|
200
|
+
And the output should contain:
|
201
|
+
"""
|
202
|
+
$ export MY_VAR=my\ value\ \
|
203
|
+
"""
|