aruba 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|