aruba 0.12.0 → 0.13.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/.travis.yml +5 -1
- data/History.md +75 -55
- data/Rakefile +1 -1
- data/aruba.gemspec +0 -1
- data/features/api/command/run_simple.feature +37 -2
- data/features/api/command/stderr.feature +46 -0
- data/features/api/command/stdout.feature +46 -0
- data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
- data/features/steps/command/run.feature +28 -0
- data/features/steps/command/shell.feature +155 -0
- data/features/steps/core/announce.feature +80 -0
- data/features/support/aruba.rb +3 -2
- data/lib/aruba/api/command.rb +7 -10
- data/lib/aruba/colorizer.rb +108 -0
- data/lib/aruba/config.rb +4 -2
- data/lib/aruba/cucumber/command.rb +12 -0
- data/lib/aruba/cucumber/hooks.rb +10 -0
- data/lib/aruba/errors.rb +6 -0
- data/lib/aruba/event_bus.rb +59 -0
- data/lib/aruba/event_bus/name_resolver.rb +168 -0
- data/lib/aruba/generators/script_file.rb +46 -0
- data/lib/aruba/matchers/path/have_permissions.rb +1 -1
- data/lib/aruba/platforms/announcer.rb +30 -23
- data/lib/aruba/platforms/filesystem_status.rb +68 -0
- data/lib/aruba/platforms/simple_table.rb +14 -7
- data/lib/aruba/platforms/unix_platform.rb +11 -2
- data/lib/aruba/platforms/unix_which.rb +0 -2
- data/lib/aruba/platforms/windows_which.rb +0 -2
- data/lib/aruba/processes/basic_process.rb +8 -0
- data/lib/aruba/processes/spawn_process.rb +31 -12
- data/lib/aruba/rspec.rb +12 -8
- data/lib/aruba/runtime.rb +2 -2
- data/lib/aruba/setup.rb +5 -2
- data/lib/aruba/version.rb +1 -1
- data/script/bootstrap +8 -0
- data/spec/aruba/api_spec.rb +1 -1
- data/spec/aruba/platform/simple_table_spec.rb +2 -2
- data/spec/event_bus/name_resolver_spec.rb +68 -0
- data/spec/event_bus_spec.rb +160 -0
- data/spec/spec_helper.rb +0 -3
- data/spec/support/configs/aruba.rb +5 -0
- metadata +22 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c728c7b302f5e46b803fabe9a95ab2769c768b65
|
4
|
+
data.tar.gz: 2a613d641ff60f99b06774b89bd23513a6aa01e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ed3b4ac93ed91676ec48e17eb70fae1ab9d456213810880e2cf50c1f84e3df75e5585c708647c6d6da00604c424e54ea907c2cd225779cac6a67cb766d21108
|
7
|
+
data.tar.gz: c3e739cc6c22e3b42bbd19d04b86b40c4c4f7c370b0bfd6fcaf0fae267654dd73b8f5c7e6f244d1ef2e59e16121fd3bcb31a799d47b0a2b9d50b010fb224109e
|
data/.travis.yml
CHANGED
@@ -39,5 +39,9 @@ notifications:
|
|
39
39
|
env:
|
40
40
|
global:
|
41
41
|
- secure: l8uznA5K4K9mZ1krmP3lTMD8WcJ32qGxFOR3jubKHcOBSLB4xSzU2aIqjyJdO+rLzebkwamhJc8pGSIWOUDQYvFiX7splK+uEkbBJ5huAhXtLF4Qgl86bCWbEXYzN7rvn0DQfpJAovyFMNRMnfo70XhwqWzFsaYa7Z0YbqYsJE4=
|
42
|
-
# - JRUBY_OPTS='-Xcli.debug=true --debug'
|
43
42
|
- JRUBY_OPTS='--dev'
|
43
|
+
cache: apt
|
44
|
+
addons:
|
45
|
+
apt:
|
46
|
+
packages:
|
47
|
+
- zsh
|
data/History.md
CHANGED
@@ -1,4 +1,78 @@
|
|
1
|
-
#
|
1
|
+
# UNRELEASED
|
2
|
+
|
3
|
+
## [v1.0.0](https://github.com/cucumber/aruba/compare/v0.11.0...v1.0.0)
|
4
|
+
|
5
|
+
* Support for rubies older than 1.9.3 is discontinued - e.g 1.8.7 and 1.9.2
|
6
|
+
* aruba requires "cucumber 2" for the feature steps. The rest of aruba should
|
7
|
+
be usable by whatever testing framework you are using.
|
8
|
+
* Overwriting methods for configuration is discontinued. You need to use
|
9
|
+
`aruba.config.<variable>` or `Aruba.configure { |config| config.<variable>`
|
10
|
+
instead.
|
11
|
+
* "aruba/reporting" will be removed. Please use `@debug`-tag + `byebug`,
|
12
|
+
`debugger`, `pry` to troubleshoot your feature tests.
|
13
|
+
* Set environment variables will have only effect on `#run` and the like +
|
14
|
+
`#with_environment { }`.
|
15
|
+
* The process environment will be fully resetted between tests. Sharing state
|
16
|
+
via ENV['VAR'] = 'shared state' between tests will not be possible anymore.
|
17
|
+
Please make that obvious by using explicit steps or use the aruba API for
|
18
|
+
that.
|
19
|
+
* There will be a major cleanup for command execution. There will be only
|
20
|
+
`run` and `run_simple` left. `run_interactive` is replaced by `run`.
|
21
|
+
* Setting the root directory of aruba via method overwrite or configuration -
|
22
|
+
this should be your project root directory where the test suite is run.
|
23
|
+
* The direct use of "InProcess", "DebugProcess" and "SpawnProcess" is not
|
24
|
+
supported anymore. You need to use "Command" instead. But be careful, it has
|
25
|
+
a different API.
|
26
|
+
* HOME can be configured via `Aruba.configure {}` and defaults to
|
27
|
+
`File.join(aruba.config.root_directory, aruba.config.working_directory?)`
|
28
|
+
if `aruba/cucumber` or `aruba/rspec` is used.
|
29
|
+
* Use different working directories based on test suite - RSpec, Cucumber.
|
30
|
+
It's `tmp/rspec` and `tmp/cucumber` now to make sure they do not overwrite
|
31
|
+
the test results from each other.
|
32
|
+
* The use of `@interactive` is discontinued. You need to use
|
33
|
+
`#last_command_started`-method to get access to the interactively started
|
34
|
+
command.
|
35
|
+
* If multiple commands have been started, each output has to be check
|
36
|
+
separately
|
37
|
+
|
38
|
+
```cucumber
|
39
|
+
Scenario: Detect stdout from all processes
|
40
|
+
When I run `printf "hello world!\n"`
|
41
|
+
And I run `cat` interactively
|
42
|
+
And I type "hola"
|
43
|
+
And I type ""
|
44
|
+
Then the stdout should contain:
|
45
|
+
"""
|
46
|
+
hello world!
|
47
|
+
"""
|
48
|
+
And the stdout should contain:
|
49
|
+
"""
|
50
|
+
hola
|
51
|
+
"""
|
52
|
+
And the stderr should not contain anything
|
53
|
+
```
|
54
|
+
|
55
|
+
# RELEASED
|
56
|
+
|
57
|
+
## [v0.13.0](https://github.com/cucumber/aruba/compare/v0.12.0...v0.13.0)
|
58
|
+
|
59
|
+
* Add two new hooks for rspec and cucumber to make troubleshooting feature
|
60
|
+
files easier (PR #338):
|
61
|
+
* command_content: Outputs command content - helpful for scripts
|
62
|
+
* command_filesystem_status: Outputs information like group, owner, mode,
|
63
|
+
atime, mtime
|
64
|
+
* Add generator to create ad hoc script file (PR #323, @AdrieanKhisbe)
|
65
|
+
* Colored announcer output similar to the color of `cucumber` tags: cyan
|
66
|
+
* Fixed bug in announcer. It announces infomation several times due to
|
67
|
+
duplicate announce-calls.
|
68
|
+
* Refactorings to internal `#simple_table`-method (internal)
|
69
|
+
* Refactored Announcer, now it supports blocks for announce as well (internal)
|
70
|
+
* Fix circular require warnings (issue #339)
|
71
|
+
* Fix use of old instances variable "@io_wait" (issue #341). Now the
|
72
|
+
default value for io_wait_timeout can be set correctly.
|
73
|
+
* Make it possible to announce information on command error, using a new option
|
74
|
+
called `activate_announcer_on_command_failure` (PR #335, @njam)
|
75
|
+
* Re-integrate `event-bus`-library into `aruba`-core (PR #342)
|
2
76
|
|
3
77
|
## [v0.12.0](https://github.com/cucumber/aruba/compare/v0.11.2...v0.12.0)
|
4
78
|
|
@@ -493,57 +567,3 @@
|
|
493
567
|
## [v0.1.0](https://github.com/cucumber/aruba/compare/ed6a175d23aaff62dbf355706996f276f304ae8b...v0.1.1)
|
494
568
|
|
495
569
|
* First release (David Chelimsky and Aslak Hellesøy)
|
496
|
-
|
497
|
-
# Upcoming un-released versions
|
498
|
-
|
499
|
-
## [v1.0.0](https://github.com/cucumber/aruba/compare/v0.11.0...v1.0.0)
|
500
|
-
|
501
|
-
* Support for rubies older than 1.9.3 is discontinued - e.g 1.8.7 and 1.9.2
|
502
|
-
* aruba requires "cucumber 2" for the feature steps. The rest of aruba should
|
503
|
-
be usable by whatever testing framework you are using.
|
504
|
-
* Overwriting methods for configuration is discontinued. You need to use
|
505
|
-
`aruba.config.<variable>` or `Aruba.configure { |config| config.<variable>`
|
506
|
-
instead.
|
507
|
-
* "aruba/reporting" will be removed. Please use `@debug`-tag + `byebug`,
|
508
|
-
`debugger`, `pry` to troubleshoot your feature tests.
|
509
|
-
* Set environment variables will have only effect on `#run` and the like +
|
510
|
-
`#with_environment { }`.
|
511
|
-
* The process environment will be fully resetted between tests. Sharing state
|
512
|
-
via ENV['VAR'] = 'shared state' between tests will not be possible anymore.
|
513
|
-
Please make that obvious by using explicit steps or use the aruba API for
|
514
|
-
that.
|
515
|
-
* There will be a major cleanup for command execution. There will be only
|
516
|
-
`run` and `run_simple` left. `run_interactive` is replaced by `run`.
|
517
|
-
* Setting the root directory of aruba via method overwrite or configuration -
|
518
|
-
this should be your project root directory where the test suite is run.
|
519
|
-
* The direct use of "InProcess", "DebugProcess" and "SpawnProcess" is not
|
520
|
-
supported anymore. You need to use "Command" instead. But be careful, it has
|
521
|
-
a different API.
|
522
|
-
* HOME can be configured via `Aruba.configure {}` and defaults to
|
523
|
-
`File.join(aruba.config.root_directory, aruba.config.working_directory?)`
|
524
|
-
if `aruba/cucumber` or `aruba/rspec` is used.
|
525
|
-
* Use different working directories based on test suite - RSpec, Cucumber.
|
526
|
-
It's `tmp/rspec` and `tmp/cucumber` now to make sure they do not overwrite
|
527
|
-
the test results from each other.
|
528
|
-
* The use of `@interactive` is discontinued. You need to use
|
529
|
-
`#last_command_started`-method to get access to the interactively started
|
530
|
-
command.
|
531
|
-
* If multiple commands have been started, each output has to be check
|
532
|
-
separately
|
533
|
-
|
534
|
-
```cucumber
|
535
|
-
Scenario: Detect stdout from all processes
|
536
|
-
When I run `printf "hello world!\n"`
|
537
|
-
And I run `cat` interactively
|
538
|
-
And I type "hola"
|
539
|
-
And I type ""
|
540
|
-
Then the stdout should contain:
|
541
|
-
"""
|
542
|
-
hello world!
|
543
|
-
"""
|
544
|
-
And the stdout should contain:
|
545
|
-
"""
|
546
|
-
hola
|
547
|
-
"""
|
548
|
-
And the stderr should not contain anything
|
549
|
-
```
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ end
|
|
19
19
|
require 'rspec/core/rake_task'
|
20
20
|
desc "Run RSpec"
|
21
21
|
RSpec::Core::RakeTask.new do |spec|
|
22
|
-
spec.rspec_opts = ['--color', '--format documentation']
|
22
|
+
spec.rspec_opts = ['--color', '--format documentation', '--warnings']
|
23
23
|
end
|
24
24
|
|
25
25
|
namespace :travis do
|
data/aruba.gemspec
CHANGED
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_runtime_dependency 'rspec-expectations', '>= 2.99'
|
20
20
|
s.add_runtime_dependency 'contracts', '~> 0.9'
|
21
21
|
s.add_runtime_dependency 'thor', '~> 0.19'
|
22
|
-
s.add_runtime_dependency 'event-bus', '~> 0.2'
|
23
22
|
|
24
23
|
s.add_development_dependency 'bundler', '~> 1.11'
|
25
24
|
|
@@ -8,7 +8,7 @@ Feature: Run command
|
|
8
8
|
Given this option is `true`, `aruba` fails if the `command` fails to run - exit code <> 0.
|
9
9
|
|
10
10
|
For all other options see [run.feature](run.feature).
|
11
|
-
|
11
|
+
|
12
12
|
Background:
|
13
13
|
Given I use a fixture named "cli-app"
|
14
14
|
|
@@ -107,7 +107,7 @@ Feature: Run command
|
|
107
107
|
Given an executable named "bin/cli" with:
|
108
108
|
"""bash
|
109
109
|
#!/usr/bin/env bash
|
110
|
-
|
110
|
+
|
111
111
|
function initialize_script {
|
112
112
|
sleep 2
|
113
113
|
}
|
@@ -205,3 +205,38 @@ Feature: Run command
|
|
205
205
|
"""
|
206
206
|
When I run `rspec`
|
207
207
|
Then the specs should all pass
|
208
|
+
|
209
|
+
Scenario: Activate announcer channels on failure
|
210
|
+
|
211
|
+
Given an executable named "bin/cli" with:
|
212
|
+
"""bash
|
213
|
+
#!/bin/bash
|
214
|
+
echo "Hello, I'm STDOUT"
|
215
|
+
echo "Hello, I'm STDERR" 1>&2
|
216
|
+
exit 1
|
217
|
+
"""
|
218
|
+
And a file named "spec/run_spec.rb" with:
|
219
|
+
"""ruby
|
220
|
+
require 'spec_helper'
|
221
|
+
|
222
|
+
Aruba.configure do |config|
|
223
|
+
config.activate_announcer_on_command_failure = [:stdout, :stderr]
|
224
|
+
end
|
225
|
+
|
226
|
+
RSpec.describe 'Run command', :type => :aruba do
|
227
|
+
it { expect { run_simple('cli', :fail_on_error => true) }.to_not raise_error }
|
228
|
+
end
|
229
|
+
"""
|
230
|
+
When I run `rspec`
|
231
|
+
Then the specs should not pass
|
232
|
+
And the output should contain:
|
233
|
+
"""
|
234
|
+
<<-STDOUT
|
235
|
+
Hello, I'm STDOUT
|
236
|
+
|
237
|
+
STDOUT
|
238
|
+
<<-STDERR
|
239
|
+
Hello, I'm STDERR
|
240
|
+
|
241
|
+
STDERR
|
242
|
+
"""
|
@@ -0,0 +1,46 @@
|
|
1
|
+
Feature: Access STDERR of command
|
2
|
+
|
3
|
+
You may need to `#stop_all_commands` before accessing `#stderr` of a single
|
4
|
+
command - e.g. `#last_command_started`.
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I use a fixture named "cli-app"
|
8
|
+
And the default aruba io wait timeout is 1 seconds
|
9
|
+
|
10
|
+
Scenario: Existing executable
|
11
|
+
Given an executable named "bin/cli" with:
|
12
|
+
"""bash
|
13
|
+
#!/bin/bash
|
14
|
+
echo 'Hello, Aruba!' >&2
|
15
|
+
"""
|
16
|
+
And a file named "spec/run_spec.rb" with:
|
17
|
+
"""ruby
|
18
|
+
require 'spec_helper'
|
19
|
+
|
20
|
+
RSpec.describe 'Run command', :type => :aruba do
|
21
|
+
before(:each) { run('cli') }
|
22
|
+
before(:each) { stop_all_commands }
|
23
|
+
it { expect(last_command_started.stderr).to start_with 'Hello' }
|
24
|
+
end
|
25
|
+
"""
|
26
|
+
When I run `rspec`
|
27
|
+
Then the specs should all pass
|
28
|
+
|
29
|
+
Scenario: Waiting for output to "appear" after 2 seconds
|
30
|
+
Given an executable named "bin/cli" with:
|
31
|
+
"""bash
|
32
|
+
#!/bin/bash
|
33
|
+
sleep 1
|
34
|
+
echo 'Hello, Aruba' >&2
|
35
|
+
"""
|
36
|
+
And a file named "spec/run_spec.rb" with:
|
37
|
+
"""ruby
|
38
|
+
require 'spec_helper'
|
39
|
+
|
40
|
+
RSpec.describe 'Run command', :type => :aruba, :io_wait_timeout => 2 do
|
41
|
+
before(:each) { run('cli') }
|
42
|
+
it { expect(last_command_started.stderr).to start_with 'Hello' }
|
43
|
+
end
|
44
|
+
"""
|
45
|
+
When I run `rspec`
|
46
|
+
Then the specs should all pass
|
@@ -0,0 +1,46 @@
|
|
1
|
+
Feature: Access STDOUT of command
|
2
|
+
|
3
|
+
You may need to `#stop_all_commands` before accessing `#stdout` of a single
|
4
|
+
command - e.g. `#last_command_started`.
|
5
|
+
|
6
|
+
Background:
|
7
|
+
Given I use a fixture named "cli-app"
|
8
|
+
And the default aruba io wait timeout is 1 seconds
|
9
|
+
|
10
|
+
Scenario: Existing executable
|
11
|
+
Given an executable named "bin/cli" with:
|
12
|
+
"""bash
|
13
|
+
#!/bin/bash
|
14
|
+
echo 'Hello, Aruba!'
|
15
|
+
"""
|
16
|
+
And a file named "spec/run_spec.rb" with:
|
17
|
+
"""ruby
|
18
|
+
require 'spec_helper'
|
19
|
+
|
20
|
+
RSpec.describe 'Run command', :type => :aruba do
|
21
|
+
before(:each) { run('cli') }
|
22
|
+
before(:each) { stop_all_commands }
|
23
|
+
it { expect(last_command_started.stdout).to start_with 'Hello' }
|
24
|
+
end
|
25
|
+
"""
|
26
|
+
When I run `rspec`
|
27
|
+
Then the specs should all pass
|
28
|
+
|
29
|
+
Scenario: Waiting for output to "appear" after 2 seconds
|
30
|
+
Given an executable named "bin/cli" with:
|
31
|
+
"""bash
|
32
|
+
#!/bin/bash
|
33
|
+
sleep 1
|
34
|
+
echo 'Hello, Aruba'
|
35
|
+
"""
|
36
|
+
And a file named "spec/run_spec.rb" with:
|
37
|
+
"""ruby
|
38
|
+
require 'spec_helper'
|
39
|
+
|
40
|
+
RSpec.describe 'Run command', :type => :aruba, :io_wait_timeout => 2 do
|
41
|
+
before(:each) { run('cli') }
|
42
|
+
it { expect(last_command_started.stdout).to start_with 'Hello' }
|
43
|
+
end
|
44
|
+
"""
|
45
|
+
When I run `rspec`
|
46
|
+
Then the specs should all pass
|
@@ -0,0 +1,38 @@
|
|
1
|
+
Feature: Configure announcer activation on command failure
|
2
|
+
|
3
|
+
As a developer
|
4
|
+
I want to configure which announcers should get activated on command failure
|
5
|
+
In order to understand what caused a command to fail
|
6
|
+
|
7
|
+
Background:
|
8
|
+
Given I use the fixture "cli-app"
|
9
|
+
|
10
|
+
Scenario: Default value
|
11
|
+
Given a file named "features/support/aruba.rb" with:
|
12
|
+
"""ruby
|
13
|
+
Aruba.configure do |config|
|
14
|
+
puts %(The default value is "#{config.activate_announcer_on_command_failure.inspect}")
|
15
|
+
end
|
16
|
+
"""
|
17
|
+
When I successfully run `cucumber`
|
18
|
+
Then the output should contain:
|
19
|
+
"""ruby
|
20
|
+
The default value is "[]"
|
21
|
+
"""
|
22
|
+
|
23
|
+
Scenario: Modify value
|
24
|
+
Given a file named "features/support/aruba.rb" with:
|
25
|
+
"""ruby
|
26
|
+
Aruba.configure do |config|
|
27
|
+
config.activate_announcer_on_command_failure = [:foo, :bar]
|
28
|
+
end
|
29
|
+
|
30
|
+
Aruba.configure do |config|
|
31
|
+
puts %(The value is "#{config.activate_announcer_on_command_failure.inspect}")
|
32
|
+
end
|
33
|
+
"""
|
34
|
+
Then I successfully run `cucumber`
|
35
|
+
Then the output should contain:
|
36
|
+
"""
|
37
|
+
The value is "[:foo, :bar]"
|
38
|
+
"""
|
@@ -20,3 +20,31 @@ Feature: Run commands
|
|
20
20
|
When I run `cucumber`
|
21
21
|
Then the features should all pass
|
22
22
|
|
23
|
+
Scenario: Activate desired announcers when running command fails
|
24
|
+
Given an executable named "bin/cli" with:
|
25
|
+
"""
|
26
|
+
#!/bin/bash
|
27
|
+
echo "Hello, I'm STDOUT"
|
28
|
+
exit 1
|
29
|
+
"""
|
30
|
+
And a file named "features/run.feature" with:
|
31
|
+
"""
|
32
|
+
Feature: Run it
|
33
|
+
Scenario: Run command
|
34
|
+
When I successfully run `cli`
|
35
|
+
"""
|
36
|
+
And I append to "features/support/env.rb" with:
|
37
|
+
"""
|
38
|
+
Before do
|
39
|
+
aruba.config.activate_announcer_on_command_failure = [:stdout]
|
40
|
+
end
|
41
|
+
"""
|
42
|
+
When I run `cucumber`
|
43
|
+
Then the features should not pass
|
44
|
+
And the output should contain:
|
45
|
+
"""
|
46
|
+
<<-STDOUT
|
47
|
+
Hello, I'm STDOUT
|
48
|
+
|
49
|
+
STDOUT
|
50
|
+
"""
|
@@ -0,0 +1,155 @@
|
|
1
|
+
Feature: Running shell commands
|
2
|
+
|
3
|
+
You can run an *ad hoc* script with the following steps:
|
4
|
+
- `When I run the following script:`
|
5
|
+
|
6
|
+
Or you can run shell commands with:
|
7
|
+
- `I run the following (bash|zsh|...shell)? commands`
|
8
|
+
- `I run the following (bash|zsh|...shell)? commands (in|with) \`interpreter\``
|
9
|
+
- `I run the following (bash|zsh|...shell)? commands (in|with) \`/path/to/interpreter\``
|
10
|
+
|
11
|
+
Background:
|
12
|
+
Given I use a fixture named "cli-app"
|
13
|
+
|
14
|
+
Scenario: Creating and running scripts
|
15
|
+
Given a file named "features/shell.feature" with:
|
16
|
+
"""
|
17
|
+
Feature: Running scripts
|
18
|
+
Scenario: Running ruby script
|
19
|
+
When I run the following script:
|
20
|
+
\"\"\"bash
|
21
|
+
#!/usr/bin/env ruby
|
22
|
+
|
23
|
+
puts "Hello"
|
24
|
+
\"\"\"
|
25
|
+
Then the output should contain exactly "Hello"
|
26
|
+
|
27
|
+
Scenario: Running python script
|
28
|
+
When I run the following script:
|
29
|
+
\"\"\"bash
|
30
|
+
#!/usr/bin/env python
|
31
|
+
|
32
|
+
print("Hello")
|
33
|
+
\"\"\"
|
34
|
+
Then the output should contain exactly "Hello"
|
35
|
+
"""
|
36
|
+
When I run `cucumber`
|
37
|
+
Then the features should all pass
|
38
|
+
|
39
|
+
Scenario: Running shell commands
|
40
|
+
Given a file named "features/shell.feature" with:
|
41
|
+
"""
|
42
|
+
Feature: Running scripts
|
43
|
+
Scenario: Running shell commands
|
44
|
+
When I run the following commands:
|
45
|
+
\"\"\"bash
|
46
|
+
echo "Hello shell"
|
47
|
+
\"\"\"
|
48
|
+
Then the output should contain exactly "Hello shell"
|
49
|
+
"""
|
50
|
+
When I run `cucumber`
|
51
|
+
Then the features should all pass
|
52
|
+
|
53
|
+
Scenario: Running bash commands
|
54
|
+
Given a file named "features/shell.feature" with:
|
55
|
+
"""
|
56
|
+
Feature: Running scripts
|
57
|
+
Scenario: Running bash commands
|
58
|
+
When I run the following commands with `bash`:
|
59
|
+
\"\"\"bash
|
60
|
+
echo -n "Hello "
|
61
|
+
echo `echo bash` # subshell
|
62
|
+
\"\"\"
|
63
|
+
Then the output should contain exactly "Hello bash"
|
64
|
+
"""
|
65
|
+
When I run `cucumber`
|
66
|
+
Then the features should all pass
|
67
|
+
|
68
|
+
Scenario: Running zsh commands
|
69
|
+
Given a file named "features/shell.feature" with:
|
70
|
+
"""
|
71
|
+
Feature: Running zsh scripts
|
72
|
+
Scenario: Running zsh commands
|
73
|
+
When I run the following commands with `zsh`:
|
74
|
+
\"\"\"bash
|
75
|
+
echo "Hello \c"
|
76
|
+
echo $((2 + 2))
|
77
|
+
\"\"\"
|
78
|
+
Then the output should contain exactly "Hello 4"
|
79
|
+
"""
|
80
|
+
When I run `cucumber`
|
81
|
+
Then the features should all pass
|
82
|
+
|
83
|
+
Scenario: Running ruby commands
|
84
|
+
Given a file named "features/shell.feature" with:
|
85
|
+
"""
|
86
|
+
Feature: Running scripts
|
87
|
+
Scenario: Running ruby commands
|
88
|
+
When I run the following commands with `ruby`:
|
89
|
+
\"\"\"ruby
|
90
|
+
puts "Hello, Aruba!"
|
91
|
+
\"\"\"
|
92
|
+
Then the output should contain exactly "Hello, Aruba!"
|
93
|
+
"""
|
94
|
+
When I run `cucumber`
|
95
|
+
Then the features should all pass
|
96
|
+
|
97
|
+
Scenario: Running python commands
|
98
|
+
Given a file named "features/shell.feature" with:
|
99
|
+
"""
|
100
|
+
Feature: Running scripts
|
101
|
+
Scenario: Running ruby commands
|
102
|
+
When I run the following commands with `python`:
|
103
|
+
\"\"\"ruby
|
104
|
+
print("Hello, Aruba!")
|
105
|
+
\"\"\"
|
106
|
+
Then the output should contain exactly "Hello, Aruba!"
|
107
|
+
"""
|
108
|
+
When I run `cucumber`
|
109
|
+
Then the features should all pass
|
110
|
+
|
111
|
+
Scenario: Running commands if full path to interpreter is given
|
112
|
+
Given a file named "features/shell.feature" with:
|
113
|
+
"""
|
114
|
+
Feature: Running full path zsh
|
115
|
+
Scenario: Running zsh commands #1
|
116
|
+
When I run the following commands with `/bin/zsh`:
|
117
|
+
\"\"\"bash
|
118
|
+
echo "Hello \c"
|
119
|
+
echo $((6 - 2))
|
120
|
+
\"\"\"
|
121
|
+
Then the output should contain exactly "Hello 4"
|
122
|
+
|
123
|
+
Scenario: Running zsh commands #1
|
124
|
+
When I run the following commands in `/bin/zsh`:
|
125
|
+
\"\"\"bash
|
126
|
+
echo "Hello \c"
|
127
|
+
echo $((6 - 2))
|
128
|
+
\"\"\"
|
129
|
+
Then the output should contain exactly "Hello 4"
|
130
|
+
"""
|
131
|
+
When I run `cucumber`
|
132
|
+
Then the features should all pass
|
133
|
+
|
134
|
+
Scenario: Running commands if only the name of interpreter is given
|
135
|
+
Given a file named "features/shell.feature" with:
|
136
|
+
"""
|
137
|
+
Feature: Running full path zsh
|
138
|
+
Scenario: Running zsh commands #1
|
139
|
+
When I run the following commands with `zsh`:
|
140
|
+
\"\"\"bash
|
141
|
+
echo "Hello \c"
|
142
|
+
echo $((6 - 2))
|
143
|
+
\"\"\"
|
144
|
+
Then the output should contain exactly "Hello 4"
|
145
|
+
|
146
|
+
Scenario: Running zsh commands #2
|
147
|
+
When I run the following commands in `zsh`:
|
148
|
+
\"\"\"bash
|
149
|
+
echo "Hello \c"
|
150
|
+
echo $((6 - 2))
|
151
|
+
\"\"\"
|
152
|
+
Then the output should contain exactly "Hello 4"
|
153
|
+
"""
|
154
|
+
When I run `cucumber`
|
155
|
+
Then the features should all pass
|