aruba 0.14.2 → 0.14.3
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/Gemfile +6 -0
- data/History.md +14 -57
- data/Rakefile +2 -3
- data/aruba.gemspec +1 -1
- data/features/getting_started/run_commands.feature +10 -0
- data/features/hooks/after/command.feature +2 -0
- data/features/hooks/before/command.feature +4 -0
- data/features/step_definitions/hooks.rb +60 -0
- data/features/steps/command/output.feature +2 -23
- data/features/steps/command/shell.feature +2 -2
- data/features/steps/overview.feature +1 -36
- data/lib/aruba/api/command.rb +1 -0
- data/lib/aruba/command.rb +2 -0
- data/lib/aruba/cucumber/command.rb +3 -3
- data/lib/aruba/cucumber/hooks.rb +1 -2
- data/lib/aruba/platforms/windows_command_string.rb +2 -1
- data/lib/aruba/processes/spawn_process.rb +9 -2
- data/lib/aruba/rspec.rb +0 -1
- data/lib/aruba/version.rb +1 -1
- data/spec/aruba/api/deprecated_spec.rb +308 -0
- data/spec/aruba/api/environment/restore_env_spec.rb +21 -0
- data/spec/aruba/api/environment/set_env_spec.rb +4 -0
- data/spec/aruba/api/filesystem/file_size_spec.rb +1 -1
- data/spec/aruba/api_spec.rb +16 -286
- data/spec/aruba/matchers/command_spec.rb +3 -3
- data/spec/aruba/matchers/deprecated_spec.rb +39 -0
- data/spec/aruba/matchers/directory_spec.rb +2 -2
- data/spec/aruba/matchers/path_spec.rb +2 -32
- data/spec/support/shared_contexts/aruba.rb +1 -0
- metadata +9 -159
- data/features/development/test.feature +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1a28b38002e8be7a18ef7f565bf01e03af948af
|
4
|
+
data.tar.gz: 9d9a66748e6626e01c26c1aaf81f0c6d9531adc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d622dcb0c21bd5f01ec339928e9638f1a0dfc7bcfc0aa52026832672c37037294dd94082e376ed8094eff08269563f8c1b7fe28601941bb971b0d9fff11e8d48
|
7
|
+
data.tar.gz: 1bc9c24af389bd3daccde3fc5dd84c779e749060684a6e425386c60d063a02da8be5670dc3c067a6af26f8e38c269fb9eefe3ab535f9d72b50e12f43affbf2b7
|
data/.travis.yml
CHANGED
@@ -10,7 +10,7 @@ rvm:
|
|
10
10
|
- 2.1.8
|
11
11
|
- 2.2.4
|
12
12
|
- 2.3.0
|
13
|
-
- jruby
|
13
|
+
- jruby-1.7.26
|
14
14
|
- jruby-20mode
|
15
15
|
- jruby-21mode
|
16
16
|
- rbx
|
@@ -30,6 +30,10 @@ matrix:
|
|
30
30
|
env: JRUBY_OPTS='--dev'
|
31
31
|
- rvm: jruby-9.0.1.0-21mode
|
32
32
|
env: JRUBY_OPTS='--dev'
|
33
|
+
branches:
|
34
|
+
only:
|
35
|
+
- master
|
36
|
+
- still
|
33
37
|
notifications:
|
34
38
|
email:
|
35
39
|
- cukes-devs@googlegroups.com
|
data/Gemfile
CHANGED
@@ -53,6 +53,12 @@ group :development, :test do
|
|
53
53
|
gem 'cucumber', '~> 2.0'
|
54
54
|
end
|
55
55
|
|
56
|
+
if RUBY_VERSION < '1.9.2'
|
57
|
+
gem 'contracts', '~> 0.15.0'
|
58
|
+
else
|
59
|
+
gem 'contracts', '~> 0.16.0'
|
60
|
+
end
|
61
|
+
|
56
62
|
if RUBY_VERSION >= '1.9.3'
|
57
63
|
# Make aruba compliant to ruby community guide
|
58
64
|
gem 'rubocop', '~> 0.32', '< 0.41.1'
|
data/History.md
CHANGED
@@ -1,58 +1,15 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
## [
|
4
|
-
|
5
|
-
*
|
6
|
-
*
|
7
|
-
|
8
|
-
*
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
1
|
+
# RELEASED
|
2
|
+
|
3
|
+
## [v0.14.3](https://github.com/cucumber/aruba/compare/v0.14.2...v0.14.3)
|
4
|
+
|
5
|
+
* Fix path bug (#422)
|
6
|
+
* Ensure non-deprecated methods do not use deprecated methods
|
7
|
+
* Update dependency on childprocess
|
8
|
+
* Fix encoding output on JRuby
|
9
|
+
|
10
|
+
## [v0.14.2](https://github.com/cucumber/aruba/compare/v0.14.1...v0.14.2)
|
11
|
+
|
12
|
+
* Handle empty JRUBY_OPTS on JRuby
|
56
13
|
|
57
14
|
## [v0.14.1](https://github.com/cucumber/aruba/compare/v0.14.0...v0.14.1)
|
58
15
|
|
@@ -80,7 +37,7 @@
|
|
80
37
|
* Fix circular require warnings (issue #339)
|
81
38
|
* Fix use of old instances variable "@io_wait" (issue #341). Now the
|
82
39
|
default value for io_wait_timeout can be set correctly.
|
83
|
-
* Make it possible to announce information on command error, using a new option
|
40
|
+
* Make it possible to announce information on command error, using a new option
|
84
41
|
called `activate_announcer_on_command_failure` (PR #335, @njam)
|
85
42
|
* Re-integrate `event-bus`-library into `aruba`-core (PR #342)
|
86
43
|
|
@@ -301,7 +258,7 @@
|
|
301
258
|
* Do not trigger Announcer API deprecation warning (issue #277)
|
302
259
|
|
303
260
|
## [v0.7.1](https://github.com/cucumber/aruba/compare/v0.7.0...v0.7.1)
|
304
|
-
* Do not break if @interactive is used
|
261
|
+
* Do not break if @interactive is used
|
305
262
|
|
306
263
|
## [v0.7.0](https://github.com/cucumber/aruba/compare/v0.6.2...v0.7.0)
|
307
264
|
* Introducing root_directory (issue #232)
|
data/Rakefile
CHANGED
@@ -8,8 +8,7 @@ require 'cucumber/rake/task'
|
|
8
8
|
|
9
9
|
Cucumber::Rake::Task.new do |t|
|
10
10
|
t.cucumber_opts = ""
|
11
|
-
|
12
|
-
t.cucumber_opts << "--format pretty"
|
11
|
+
t.cucumber_opts << "--format progress"
|
13
12
|
end
|
14
13
|
|
15
14
|
Cucumber::Rake::Task.new(:cucumber_wip) do |t|
|
@@ -19,7 +18,7 @@ end
|
|
19
18
|
require 'rspec/core/rake_task'
|
20
19
|
desc "Run RSpec"
|
21
20
|
RSpec::Core::RakeTask.new do |spec|
|
22
|
-
spec.rspec_opts = ['--color', '--format
|
21
|
+
spec.rspec_opts = ['--color', '--format progress', '--warnings']
|
23
22
|
end
|
24
23
|
|
25
24
|
namespace :travis do
|
data/aruba.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.homepage = 'http://github.com/cucumber/aruba'
|
15
15
|
|
16
16
|
s.add_runtime_dependency 'cucumber', '>= 1.3.19'
|
17
|
-
s.add_runtime_dependency 'childprocess', '~> 0.
|
17
|
+
s.add_runtime_dependency 'childprocess', '~> 0.8.0'
|
18
18
|
s.add_runtime_dependency 'ffi', '~> 1.9.10'
|
19
19
|
s.add_runtime_dependency 'rspec-expectations', '>= 2.99'
|
20
20
|
s.add_runtime_dependency 'contracts', '~> 0.9'
|
@@ -23,6 +23,7 @@ Feature: Run commands with Aruba
|
|
23
23
|
\"\"\"
|
24
24
|
"""
|
25
25
|
|
26
|
+
@requires-bash
|
26
27
|
Scenario: Bash Program
|
27
28
|
Given an executable named "bin/cli" with:
|
28
29
|
"""bash
|
@@ -33,6 +34,7 @@ Feature: Run commands with Aruba
|
|
33
34
|
When I successfully run `cucumber`
|
34
35
|
Then the features should all pass
|
35
36
|
|
37
|
+
@requires-bash
|
36
38
|
Scenario: Bash Program run via bash
|
37
39
|
Given a file named "features/hello_aruba.feature" with:
|
38
40
|
"""
|
@@ -51,6 +53,7 @@ Feature: Run commands with Aruba
|
|
51
53
|
When I successfully run `cucumber`
|
52
54
|
Then the features should all pass
|
53
55
|
|
56
|
+
@requires-ruby
|
54
57
|
Scenario: Ruby Program
|
55
58
|
Given an executable named "bin/cli" with:
|
56
59
|
"""ruby
|
@@ -61,6 +64,7 @@ Feature: Run commands with Aruba
|
|
61
64
|
When I successfully run `cucumber`
|
62
65
|
Then the features should all pass
|
63
66
|
|
67
|
+
@requires-ruby
|
64
68
|
Scenario: Ruby Program via "ruby"
|
65
69
|
Given a file named "features/hello_aruba.feature" with:
|
66
70
|
"""
|
@@ -79,6 +83,7 @@ Feature: Run commands with Aruba
|
|
79
83
|
When I successfully run `cucumber`
|
80
84
|
Then the features should all pass
|
81
85
|
|
86
|
+
@requires-python
|
82
87
|
Scenario: Python Program
|
83
88
|
Given an executable named "bin/cli" with:
|
84
89
|
"""python
|
@@ -89,6 +94,7 @@ Feature: Run commands with Aruba
|
|
89
94
|
When I successfully run `cucumber`
|
90
95
|
Then the features should all pass
|
91
96
|
|
97
|
+
@requires-python
|
92
98
|
Scenario: Python Program via "python"
|
93
99
|
Given a file named "features/hello_aruba.feature" with:
|
94
100
|
"""
|
@@ -107,6 +113,7 @@ Feature: Run commands with Aruba
|
|
107
113
|
When I successfully run `cucumber`
|
108
114
|
Then the features should all pass
|
109
115
|
|
116
|
+
@requires-perl
|
110
117
|
Scenario: Perl Program
|
111
118
|
Given an executable named "bin/cli" with:
|
112
119
|
"""perl
|
@@ -117,6 +124,7 @@ Feature: Run commands with Aruba
|
|
117
124
|
When I successfully run `cucumber`
|
118
125
|
Then the features should all pass
|
119
126
|
|
127
|
+
@requires-perl
|
120
128
|
Scenario: Perl Program via "perl"
|
121
129
|
Given a file named "features/hello_aruba.feature" with:
|
122
130
|
"""
|
@@ -135,6 +143,7 @@ Feature: Run commands with Aruba
|
|
135
143
|
When I successfully run `cucumber`
|
136
144
|
Then the features should all pass
|
137
145
|
|
146
|
+
@requires-java
|
138
147
|
Scenario: Java Program
|
139
148
|
|
140
149
|
It's even possible to compile and run Java programs with Aruba.
|
@@ -162,6 +171,7 @@ Feature: Run commands with Aruba
|
|
162
171
|
When I successfully run `cucumber`
|
163
172
|
Then the features should all pass
|
164
173
|
|
174
|
+
@requires-posix-standard-tools
|
165
175
|
Scenario: POSIX standard tools
|
166
176
|
Given a file named "features/hello_aruba.feature" with:
|
167
177
|
"""
|
@@ -19,6 +19,8 @@ Feature: After command hooks
|
|
19
19
|
Scenario: Run a simple command with an "after(:command)"-hook
|
20
20
|
Given a file named "spec/support/hooks.rb" with:
|
21
21
|
"""
|
22
|
+
require 'aruba'
|
23
|
+
|
22
24
|
Aruba.configure do |config|
|
23
25
|
config.after :command do |cmd|
|
24
26
|
puts "after the run of `#{cmd.commandline}`"
|
@@ -21,6 +21,8 @@ Feature: before_cmd hooks
|
|
21
21
|
Scenario: Run a simple command with a "before(:command)"-hook
|
22
22
|
Given a file named "spec/support/hooks.rb" with:
|
23
23
|
"""
|
24
|
+
require 'aruba'
|
25
|
+
|
24
26
|
Aruba.configure do |config|
|
25
27
|
config.before :command do |cmd|
|
26
28
|
puts "before the run of `#{cmd.commandline}`"
|
@@ -47,6 +49,8 @@ Feature: before_cmd hooks
|
|
47
49
|
Scenario: Run a simple command with a "before(:cmd)"-hook (deprecated)
|
48
50
|
Given a file named "spec/support/hooks.rb" with:
|
49
51
|
"""
|
52
|
+
require 'aruba'
|
53
|
+
|
50
54
|
Aruba.configure do |config|
|
51
55
|
config.before :cmd do |cmd|
|
52
56
|
puts "before the run of `#{cmd}`"
|
@@ -1,5 +1,65 @@
|
|
1
1
|
require 'cucumber/platform'
|
2
2
|
|
3
|
+
Before '@requires-python' do |scenario|
|
4
|
+
next unless Aruba.platform.which('python').nil?
|
5
|
+
|
6
|
+
if Cucumber::VERSION < '2'
|
7
|
+
scenario.skip_invoke!
|
8
|
+
else
|
9
|
+
skip_this_scenario
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Before '@requires-zsh' do |scenario|
|
14
|
+
next unless Aruba.platform.which('zsh').nil?
|
15
|
+
|
16
|
+
if Cucumber::VERSION < '2'
|
17
|
+
scenario.skip_invoke!
|
18
|
+
else
|
19
|
+
skip_this_scenario
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Before '@requires-java' do |scenario|
|
24
|
+
next unless Aruba.platform.which('javac').nil?
|
25
|
+
|
26
|
+
if Cucumber::VERSION < '2'
|
27
|
+
scenario.skip_invoke!
|
28
|
+
else
|
29
|
+
skip_this_scenario
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
Before '@requires-perl' do |scenario|
|
34
|
+
next unless Aruba.platform.which('perl').nil?
|
35
|
+
|
36
|
+
if Cucumber::VERSION < '2'
|
37
|
+
scenario.skip_invoke!
|
38
|
+
else
|
39
|
+
skip_this_scenario
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
Before '@requires-ruby' do |scenario|
|
44
|
+
next unless Aruba.platform.which('ruby').nil?
|
45
|
+
|
46
|
+
if Cucumber::VERSION < '2'
|
47
|
+
scenario.skip_invoke!
|
48
|
+
else
|
49
|
+
skip_this_scenario
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
Before '@requires-posix-standard-tools' do |scenario|
|
54
|
+
next unless Aruba.platform.which('printf').nil?
|
55
|
+
|
56
|
+
if Cucumber::VERSION < '2'
|
57
|
+
scenario.skip_invoke!
|
58
|
+
else
|
59
|
+
skip_this_scenario
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
3
63
|
Before '@requires-ruby-version-193' do |scenario|
|
4
64
|
next if RUBY_VERSION >= '1.9.3'
|
5
65
|
|
@@ -81,33 +81,12 @@ Feature: All output of commands which were executed
|
|
81
81
|
When I run `cucumber`
|
82
82
|
Then the features should all pass
|
83
83
|
|
84
|
-
|
85
|
-
Scenario: Detect exact one-line output for posix commands
|
84
|
+
Scenario: Detect exact one-line output
|
86
85
|
Given a file named "features/output.feature" with:
|
87
86
|
"""cucumber
|
88
87
|
Feature: Run command
|
89
88
|
Scenario: Run command
|
90
|
-
When I run `
|
91
|
-
Then the output should contain exactly:
|
92
|
-
\"\"\"
|
93
|
-
hello world
|
94
|
-
\"\"\"
|
95
|
-
"""
|
96
|
-
When I run `cucumber`
|
97
|
-
Then the features should all pass
|
98
|
-
|
99
|
-
Scenario: Detect exact one-line output for ruby commands
|
100
|
-
Given an executable named "bin/cli" with:
|
101
|
-
"""ruby
|
102
|
-
#!/usr/bin/env ruby
|
103
|
-
|
104
|
-
print "hello world"
|
105
|
-
"""
|
106
|
-
And a file named "features/output.feature" with:
|
107
|
-
"""cucumber
|
108
|
-
Feature: Run command
|
109
|
-
Scenario: Run command
|
110
|
-
When I run `cli`
|
89
|
+
When I run `echo 'hello world'`
|
111
90
|
Then the output should contain exactly:
|
112
91
|
\"\"\"
|
113
92
|
hello world
|
@@ -22,7 +22,7 @@ Feature: Running shell commands
|
|
22
22
|
|
23
23
|
puts "Hello"
|
24
24
|
\"\"\"
|
25
|
-
Then the output should contain
|
25
|
+
Then the output should contain "Hello"
|
26
26
|
|
27
27
|
Scenario: Running python script
|
28
28
|
When I run the following script:
|
@@ -89,7 +89,7 @@ Feature: Running shell commands
|
|
89
89
|
\"\"\"ruby
|
90
90
|
puts "Hello, Aruba!"
|
91
91
|
\"\"\"
|
92
|
-
Then the output should contain
|
92
|
+
Then the output should contain "Hello, Aruba!"
|
93
93
|
"""
|
94
94
|
When I run `cucumber`
|
95
95
|
Then the features should all pass
|
@@ -4,45 +4,10 @@ Feature: Overview of steps
|
|
4
4
|
Who would like to use `aruba`
|
5
5
|
But didn't know which steps are available
|
6
6
|
|
7
|
-
|
7
|
+
Scenario: Use cucumber output formatter
|
8
8
|
Given I use a fixture named "cli-app"
|
9
|
-
|
10
|
-
Scenario: Use information found in repository
|
11
|
-
Given an executable named "bin/cli" with:
|
12
|
-
"""
|
13
|
-
#!/bin/bash
|
14
|
-
git clone https://github.com/cucumber/aruba.git
|
15
|
-
cd aruba
|
16
|
-
grep -E "When|Given|Then" lib/aruba/cucumber/*.rb | awk -F ":" '{ $1 = ""; print $0}' |sort
|
17
|
-
"""
|
18
9
|
And a file named "features/run.feature" with:
|
19
10
|
"""
|
20
|
-
Feature: Run it
|
21
|
-
Scenario: Run command
|
22
|
-
When I run `cli`
|
23
|
-
Then the output should contain:
|
24
|
-
\"\"\"
|
25
|
-
Cloning into 'aruba'...
|
26
|
-
\"\"\"
|
27
|
-
And the output should contain:
|
28
|
-
\"\"\"
|
29
|
-
Given(/^
|
30
|
-
\"\"\"
|
31
|
-
And the output should contain:
|
32
|
-
\"\"\"
|
33
|
-
When(/^
|
34
|
-
\"\"\"
|
35
|
-
And the output should contain:
|
36
|
-
\"\"\"
|
37
|
-
Then(/^
|
38
|
-
\"\"\"
|
39
|
-
"""
|
40
|
-
When I run `cucumber`
|
41
|
-
Then the features should all pass
|
42
|
-
|
43
|
-
Scenario: Use cucumber output formatter
|
44
|
-
Given a file named "features/run.feature" with:
|
45
|
-
"""
|
46
11
|
Feature: Run it
|
47
12
|
Scenario: Run command
|
48
13
|
Given a directory named "features"
|
data/lib/aruba/api/command.rb
CHANGED
@@ -282,6 +282,7 @@ module Aruba
|
|
282
282
|
expect(command).to be_successfully_executed
|
283
283
|
rescue RSpec::Expectations::ExpectationNotMetError => e
|
284
284
|
aruba.announcer.activate(aruba.config.activate_announcer_on_command_failure)
|
285
|
+
aruba.event_bus.notify Events::CommandStopped.new(command)
|
285
286
|
raise e
|
286
287
|
end
|
287
288
|
end
|