aruba 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +4 -4
- data/{History.txt → History.md} +59 -78
- data/{README.rdoc → README.md} +68 -58
- data/aruba.gemspec +2 -3
- data/lib/aruba/api.rb +20 -8
- data/lib/aruba/cucumber.rb +39 -43
- data/lib/aruba/reporting.rb +1 -1
- metadata +10 -12
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
aruba (0.4.
|
4
|
+
aruba (0.4.1)
|
5
5
|
bcat (>= 0.6.1)
|
6
6
|
childprocess (>= 0.1.9)
|
7
|
-
cucumber (>= 0.10.
|
7
|
+
cucumber (>= 0.10.7)
|
8
8
|
rdiscount (>= 1.6.8)
|
9
9
|
rspec (>= 2.6.0)
|
10
10
|
|
@@ -16,7 +16,7 @@ GEM
|
|
16
16
|
builder (3.0.0)
|
17
17
|
childprocess (0.1.9)
|
18
18
|
ffi (~> 1.0.6)
|
19
|
-
cucumber (
|
19
|
+
cucumber (0.10.7)
|
20
20
|
builder (>= 2.1.2)
|
21
21
|
diff-lcs (>= 1.1.2)
|
22
22
|
gherkin (~> 2.4.0)
|
@@ -26,7 +26,7 @@ GEM
|
|
26
26
|
ffi (1.0.9)
|
27
27
|
gherkin (2.4.0)
|
28
28
|
json (>= 1.4.6)
|
29
|
-
json (1.5.
|
29
|
+
json (1.5.2)
|
30
30
|
rack (1.3.0)
|
31
31
|
rdiscount (1.6.8)
|
32
32
|
rspec (2.6.0)
|
data/{History.txt → History.md}
RENAMED
@@ -1,85 +1,69 @@
|
|
1
|
-
|
1
|
+
## [v0.4.1](https://github.com/cucumber/aruba/compare/v0.4.0...v0.4.1)
|
2
|
+
|
3
|
+
* Move more logic into Aruba::Api (Aslak Hellesøy)
|
4
|
+
|
5
|
+
## [v0.4.0](https://github.com/cucumber/aruba/compare/v0.3.7...v0.4.0)
|
2
6
|
|
3
7
|
* New, awesome HTML reporting feature that captures everything that happens during a scenario. (Aslak Hellesøy)
|
4
8
|
* ANSI escapes from output are stripped by default. Override this with the @ansi tag. (Aslak Hellesøy)
|
5
9
|
|
6
|
-
|
10
|
+
## [v0.3.7](https://github.com/cucumber/aruba/compare/v0.3.6...v0.3.7)
|
7
11
|
|
8
12
|
* Make Aruba::Api#get_process return the last executed process with passed cmd (Potapov Sergey)
|
9
13
|
* Replace announce with puts to comply with cucumber 0.10.6 (Aslak Hellesøy)
|
10
14
|
* Fix childprocess STDIN to be synchronous (#40, #71 Tim Ekl)
|
11
15
|
|
12
|
-
|
16
|
+
## [v0.3.6](https://github.com/cucumber/aruba/compare/v0.3.5...v0.3.6)
|
13
17
|
|
14
18
|
* Changed default value of @aruba_timeout_seconds from 1 to 3. (Aslak Hellesøy)
|
15
19
|
* Separate hooks and steps to make it easier to build your own steps on top of Aruba's API (Mike Sassak)
|
16
20
|
* @no-clobber to prevent cleanup before each scenario (Mike Sassak)
|
17
21
|
|
18
|
-
|
22
|
+
## [v0.3.5](https://github.com/cucumber/aruba/compare/v0.3.4...v0.3.5)
|
19
23
|
|
20
|
-
=== Bugfixes
|
21
24
|
* Store processes in an array to ensure order of operations on Ruby 1.8.x (#48 Mike Sassak)
|
22
25
|
|
23
|
-
|
26
|
+
## [v0.3.4](https://github.com/cucumber/aruba/compare/v0.3.3...v0.3.4)
|
24
27
|
|
25
|
-
* Use backticks (
|
28
|
+
* Use backticks (\`) instead of quotes (") to specify command line. Quote still works, but is deprecated. (Anthony Eden, Aslak Hellesøy)
|
26
29
|
|
27
|
-
|
30
|
+
## [v0.3.3](https://github.com/cucumber/aruba/compare/v0.3.2...v0.3.3)
|
28
31
|
|
29
32
|
* Updated RSpec development requirement to 2.5 (Robert Speicher, Mike Sassak, Aslak Hellesøy)
|
30
33
|
* Updated RubyGems dependency to 1.6.1 (Robert Speicher)
|
31
34
|
|
32
|
-
|
35
|
+
## [v0.3.2](https://github.com/cucumber/aruba/compare/v0.3.1...v0.3.2)
|
33
36
|
|
34
|
-
=== Bugfixes
|
35
37
|
* Wrong number of args in the When I overwrite step (Aslak Hellesøy)
|
36
38
|
|
37
|
-
|
39
|
+
## [v0.3.1](https://github.com/cucumber/aruba/compare/v0.3.0...v0.3.1)
|
38
40
|
|
39
|
-
=== Bugfixes
|
40
41
|
* Broken 0.3.0 release (#43, #44 Mike Sassak)
|
41
|
-
|
42
|
-
=== Changed Features
|
43
42
|
* Quotes (") and newline (\n) in step arguments are no longer unescaped. (Aslak Hellesøy)
|
44
43
|
|
45
|
-
|
44
|
+
## [v0.3.0](https://github.com/cucumber/aruba/compare/v0.2.8...v0.3.0)
|
46
45
|
|
47
|
-
=== Bugfixes
|
48
46
|
* Remove latency introduced in the 0.2.8 release (#42 Mike Sassak)
|
49
|
-
|
50
|
-
=== New Features
|
51
47
|
* New stepdef Then /^the stdout should contain:$/ do |partial_output| (Aslak Hellesøy)
|
52
|
-
|
53
|
-
=== Changed Features
|
54
48
|
* Quotes (") and newline (\n) in step arguments no longer need to be backslash-escaped. (Aslak Hellesøy)
|
55
49
|
|
56
|
-
|
50
|
+
## [v0.2.8](https://github.com/cucumber/aruba/compare/v0.2.7...v0.2.8)
|
57
51
|
|
58
|
-
=== New Features
|
59
52
|
* Replaced background_process with childprocess, a cross-platform process control library. This will allow Aruba to run on Windows and JRuby in addition to *nix MRI. (#16, #27, #31 Mike Sassak, Jari Bakken, Matt Wynne, Arve Knudsen)
|
60
53
|
|
61
|
-
|
54
|
+
## [v0.2.7](https://github.com/cucumber/aruba/compare/v0.2.6...v0.2.7)
|
62
55
|
|
63
|
-
=== New Features
|
64
56
|
* Upgrade to Cucumber 0.10.0. (Aslak Hellesøy)
|
65
|
-
|
66
|
-
=== Changed Features
|
67
57
|
* require 'aruba' does nothing - you have to require 'aruba/cucumber' now. This is to prevent bundler from loading it when we don't want to. (Aslak Hellesøy)
|
68
|
-
|
69
|
-
=== Bug fixes
|
70
58
|
* Outputting a lot of data causes process to time out (#30 Mike Sassak)
|
71
59
|
|
72
|
-
|
60
|
+
## [v0.2.6](https://github.com/cucumber/aruba/compare/v0.2.5...v0.2.6)
|
73
61
|
|
74
|
-
=== New Features
|
75
62
|
* You can set @aruba_timeout_seconds in a Before hook to tell Aruba to wait for a process to complete. Default: 1 second. (Aslak Hellesøy)
|
76
|
-
|
77
|
-
=== Bug fixes
|
78
63
|
* Fixed small bug in /^the stdout should contain exactly:$/ (Aslak Hellesøy)
|
79
64
|
|
80
|
-
|
65
|
+
## [v0.2.5](https://github.com/cucumber/aruba/compare/v0.2.4...v0.2.5)
|
81
66
|
|
82
|
-
=== New Features
|
83
67
|
* Added 'a file named "whatever" should (not) exist' (Robert Speicher)
|
84
68
|
* Added 'a directory named "whatever" should (not) exist' (Robert Speicher)
|
85
69
|
* Added /^the stderr should contain exactly:"$/ (Aslak Hellesøy)
|
@@ -87,90 +71,82 @@
|
|
87
71
|
* Added /it should pass with exactly:/ (Aslak Hellesøy)
|
88
72
|
* @announce, @announce-dir and @announce-cmd for interactive processes (Mike Sassak)
|
89
73
|
* Add step defs for detecting output, stdout and stderr by process name (Mike Sassak)
|
90
|
-
|
91
|
-
=== Bug fixes
|
92
74
|
* Stop all processes before verifying filesystem changes to ensure async operations are complete (#17 Mike Sassak)
|
93
75
|
* Outputting large amounts of data causes run steps to hang (#18 Mike Sassak)
|
94
76
|
|
95
|
-
|
77
|
+
## [v0.2.4](https://github.com/cucumber/aruba/compare/v0.2.3...v0.2.4)
|
96
78
|
|
97
|
-
=== New Features
|
98
79
|
* Added step definitions for removing files and checking presence of a single file. (Aslak Hellesøy)
|
99
80
|
|
100
|
-
|
81
|
+
## [v0.2.3](https://github.com/cucumber/aruba/compare/v0.2.2...v0.2.3)
|
101
82
|
|
102
|
-
=== Bug fixes
|
103
83
|
* Directory should not exist gives false-positive (#13,#15 Nicholas Rutherford)
|
104
|
-
|
105
|
-
=== New Features
|
106
84
|
* Added step definitions for comparing file contents with regexps (#9 Aslak Hellesøy)
|
107
85
|
* Always put ./bin at the beginning of $PATH to make it easier to run own executables (#7 Aslak Hellesøy)
|
108
86
|
* Communication with interactive processes (#4 Mike Sassak)
|
109
87
|
* Remove hyphens separating stdout and stderr (Arve Knudsen)
|
110
88
|
|
111
|
-
|
89
|
+
## [v0.2.2](https://github.com/cucumber/aruba/compare/v0.2.1...v0.2.2)
|
112
90
|
|
113
|
-
=== New Features
|
114
91
|
* Added a @bin tag that sets up './bin' first on the path (Aslak Hellesøy)
|
115
92
|
* Richer API making aruba easier to use from Ruby code. (Mark Nijhof, Aslak Hellesøy)
|
116
|
-
|
117
|
-
=== Removed Features
|
118
93
|
* No more support for RVM. Use rvm 1.9.2,1.8.7 exec cucumber .... instead. (Mark Nijhof, Aslak Hellesøy)
|
119
94
|
|
120
|
-
|
95
|
+
## [v0.2.1](https://github.com/cucumber/aruba/compare/v0.2.0...v0.2.1)
|
121
96
|
|
122
|
-
=== Bugfixes
|
123
97
|
* Always compare with RSpec should =~ instead of should match. This gives a diff when there is no match. (Aslak Hellesøy)
|
124
98
|
|
125
|
-
|
99
|
+
## [v0.2.0](https://github.com/cucumber/aruba/compare/v0.1.9...v0.2.0)
|
126
100
|
|
127
|
-
=== New Features
|
128
101
|
* Added aruba.gemspec. (David Chelimsky)
|
129
|
-
|
130
|
-
=== Changed features
|
131
102
|
* Several step definitions regarding output have changed. (#1 Aslak Hellesøy)
|
132
103
|
|
133
|
-
|
134
|
-
|
104
|
+
- /^I should see "([^\"]*)"$/
|
105
|
+
+ /^the output should contain "([^"]*)"$/
|
106
|
+
|
107
|
+
- /^I should not see "([^\"]*)"$/
|
108
|
+
+ /^the output should not contain "([^"]*)"$/
|
135
109
|
|
136
|
-
|
137
|
-
|
110
|
+
- /^I should see:$/
|
111
|
+
+ /^the output should contain:$/
|
138
112
|
|
139
|
-
|
140
|
-
|
113
|
+
- /^I should not see:$/
|
114
|
+
+ /^the output should not contain:$/
|
141
115
|
|
142
|
-
|
143
|
-
|
116
|
+
- /^I should see exactly "([^\"]*)"$/
|
117
|
+
+ /^the output should contain exactly "([^"]*)"$/
|
144
118
|
|
145
|
-
|
146
|
-
|
119
|
+
- /^I should see exactly:$/
|
120
|
+
+ /^the output should contain exactly:$/
|
147
121
|
|
148
|
-
|
149
|
-
|
122
|
+
- /^I should see matching \/([^\/]*)\/$/
|
123
|
+
+ /^the output should match \/([^\/]*)\/$/
|
150
124
|
|
151
|
-
|
152
|
-
|
125
|
+
- /^I should see matching:$/
|
126
|
+
+ /^the output should match:$/
|
153
127
|
|
154
|
-
|
155
|
-
+ /^the output should match:$/
|
128
|
+
## [v0.1.9](https://github.com/cucumber/aruba/compare/v0.1.8...v0.1.9)
|
156
129
|
|
157
|
-
== 0.1.9
|
158
130
|
* If the GOTGEMS environment variable is set, bundler won't run (faster). (Aslak Hellesøy)
|
159
131
|
|
160
|
-
|
132
|
+
## [v0.1.8](https://github.com/cucumber/aruba/compare/v0.1.7...v0.1.8)
|
133
|
+
|
161
134
|
* Use // instead of "" for "I should see matching" step. (Aslak Hellesøy)
|
162
135
|
* Replace rvm gemset character '%' with '@' for rvm 0.1.24 (#5 Ashley Moran)
|
163
136
|
* Support gem bundler, making it easier to specify gems. (Aslak Hellesøy)
|
164
137
|
|
165
|
-
|
138
|
+
## [v0.1.7](https://github.com/cucumber/aruba/compare/v0.1.6...v0.1.7)
|
139
|
+
|
166
140
|
* New @announce-stderr tag (Robert Wahler)
|
167
141
|
* New "I should see matching" steps using Regexp (Robert Wahler)
|
168
142
|
|
169
|
-
|
143
|
+
## [v0.1.6](https://github.com/cucumber/aruba/compare/v0.1.5...v0.1.6)
|
144
|
+
|
170
145
|
* When /^I successfully run "(.*)"$/ now prints the combined output if exit status is not 0. (Aslak Hellesøy)
|
171
146
|
* Add bundle to list of common ruby scripts. (Aslak Hellesøy)
|
172
147
|
|
173
|
-
|
148
|
+
## [v0.1.5](https://github.com/cucumber/aruba/compare/v0.1.4...v0.1.5)
|
149
|
+
|
174
150
|
* Added ability to map rvm versions to a specific version with config/aruba-rvm.yml. (Aslak Hellesøy)
|
175
151
|
* Check for presence of files. (Aslak Hellesøy)
|
176
152
|
* Allow specification of rvm gemsets. (Aslak Hellesøy)
|
@@ -178,17 +154,22 @@
|
|
178
154
|
* Added support for rvm, making it possible to choose Ruby interpreter. (Aslak Hellesøy)
|
179
155
|
* Added @announce-cmd, @announce-stdout and @announce tags, useful for seeing what's executed and outputted. (Aslak Hellesøy)
|
180
156
|
|
181
|
-
|
157
|
+
## [v0.1.4](https://github.com/cucumber/aruba/compare/v0.1.3...v0.1.4)
|
158
|
+
|
182
159
|
* New step definition for appending to a file (Aslak Hellesøy)
|
183
160
|
|
184
|
-
|
161
|
+
## [v0.1.3](https://github.com/cucumber/aruba/compare/v0.1.2...v0.1.3)
|
162
|
+
|
185
163
|
* New step definition for cd (change directory) (Aslak Hellesøy)
|
186
164
|
|
187
|
-
|
165
|
+
## [v0.1.2](https://github.com/cucumber/aruba/compare/v0.1.1...v0.1.2)
|
166
|
+
|
188
167
|
* Separated API from Cucumber step definitions, makes this usable without Cucumber. (Aslak Hellesøy)
|
189
168
|
|
190
|
-
|
169
|
+
## [v0.1.1](https://github.com/cucumber/aruba/compare/v0.1.0...v0.1.1)
|
170
|
+
|
191
171
|
* Better Regexp escaping (David Chelimsky)
|
192
172
|
|
193
|
-
|
173
|
+
## [v0.1.0](https://github.com/cucumber/aruba/compare/ed6a175d23aaff62dbf355706996f276f304ae8b...v0.1.1)
|
174
|
+
|
194
175
|
* First release (David Chelimsky and Aslak Hellesøy)
|
data/{README.rdoc → README.md}
RENAMED
@@ -4,70 +4,89 @@ Aruba is Cucumber extension for Command line applications written in any program
|
|
4
4
|
* Manipulate the file system
|
5
5
|
* Create great HTML documentation based on your own Cucumber scenarios
|
6
6
|
|
7
|
-
|
7
|
+
## Usage
|
8
8
|
|
9
|
-
|
9
|
+
If you have a `Gemfile`, add `aruba`. Otherwise, install it like this:
|
10
10
|
|
11
|
-
|
11
|
+
gem install aruba
|
12
12
|
|
13
|
-
|
13
|
+
Then, `require` the library in one of your ruby files under `features/support` (e.g. `env.rb`)
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
require 'aruba/cucumber'
|
16
|
+
|
17
|
+
You now have a bunch of step definitions that you can use in your features. Look at `lib/aruba/cucumber.rb`
|
18
|
+
to see them all. Look at `features/*.feature` for examples (which are also testing Aruba
|
17
19
|
itself).
|
18
20
|
|
19
|
-
|
21
|
+
## Configuration
|
20
22
|
|
21
|
-
Aruba has
|
23
|
+
Aruba has some default behaviour that you can change if you need to.
|
22
24
|
|
23
|
-
|
25
|
+
### Use a different working directory
|
24
26
|
|
25
|
-
|
26
|
-
|
27
|
-
* <tt>@announce-stderr</tt> - See the stderr
|
28
|
-
* <tt>@announce-dir</tt> - See the current directory
|
29
|
-
* <tt>@announce-env</tt> - See environment variables set by Aruba
|
30
|
-
* <tt>@announce</tt> - Does all of the above
|
27
|
+
Per default Aruba will create a directory `tmp/aruba` where it performs its file operations.
|
28
|
+
If you want to change this behaviour put this into your `features/support/env.rb`:
|
31
29
|
|
32
|
-
|
30
|
+
Before do
|
31
|
+
@dirs = ["somewhere/else"]
|
32
|
+
end
|
33
33
|
|
34
|
-
* <tt>@no-clobber</tt> - Don't cleanup before scenarios
|
35
34
|
|
36
|
-
|
37
|
-
and leave the ANSI escape characters intact, just tag your scenario with <tt>@ansi</tt>. Alternatively you can add your own Before
|
38
|
-
hook that sets @aruba_keep_ansi=true
|
35
|
+
### Modify the PATH
|
39
36
|
|
40
|
-
|
37
|
+
If testing an executable in your project's `bin` directory, it might not be in the `PATH` Aruba
|
38
|
+
uses. An easy way to set it is to put the following in `features/support/env.rb`:
|
41
39
|
|
42
|
-
|
43
|
-
If you want to change this behaviour put this into your <tt>features/support/env.rb</tt>:
|
40
|
+
ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
|
44
41
|
|
45
|
-
|
46
|
-
@dirs = ["somewhere/else"]
|
47
|
-
end
|
42
|
+
### Increasing timeouts
|
48
43
|
|
49
|
-
|
50
|
-
uses. An easy way to set it is to put the following in <tt>features/support/env.rb</tt>:
|
44
|
+
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 `@aruba_timeout_seconds` in a `Before` block:
|
51
45
|
|
52
|
-
|
46
|
+
Before do
|
47
|
+
@aruba_timeout_seconds = 5
|
48
|
+
end
|
53
49
|
|
54
|
-
|
55
|
-
finish running before terminating it:
|
56
|
-
|
57
|
-
Before do
|
58
|
-
@aruba_timeout_seconds = 5
|
59
|
-
end
|
50
|
+
### Increasing IO wait time
|
60
51
|
|
61
52
|
Running processes interactively can result in race conditions when Aruba executes an IO-related step
|
62
53
|
but the interactive process has not yet flushed or read some content. To help prevent this Aruba waits
|
63
54
|
before reading or writing to the process if it is still running. You can control the wait by setting
|
64
|
-
|
55
|
+
`@aruba_io_wait_seconds` to an appropriate value. This is particularly useful with tags:
|
56
|
+
|
57
|
+
Before('@slow_process') do
|
58
|
+
@aruba_io_wait_seconds = 5
|
59
|
+
end
|
60
|
+
|
61
|
+
### Tags
|
62
|
+
|
63
|
+
Aruba defines several tags that you can put on on individual scenarios, or on a feature.
|
64
|
+
|
65
|
+
#### Seeing more output with `@announce-*`
|
66
|
+
|
67
|
+
To get more information on what Aruba is doing, use these tags:
|
65
68
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
+
* `@announce-cmd` - See what command is is run
|
70
|
+
* `@announce-stdout` - See the stdout
|
71
|
+
* `@announce-stderr` - See the stderr
|
72
|
+
* `@announce-dir` - See the current directory
|
73
|
+
* `@announce-env` - See environment variables set by Aruba
|
74
|
+
* `@announce` - Does all of the above
|
69
75
|
|
70
|
-
|
76
|
+
#### Keep files around with `@no-clobber`
|
77
|
+
|
78
|
+
Aruba clobbers all files in its working directory before each scenario. -Unless you tag it with `@no-clobber`
|
79
|
+
|
80
|
+
#### Making assertions about ANSI escapes with `@ansi`
|
81
|
+
|
82
|
+
Aruba strips away ANSI escapes from the stdout and stderr of spawned child processes by default. It's usually rather cumbersome to
|
83
|
+
make assertions about coloured output. Still, there might be cases where you want to leave the ANSI escapes intact. Just tag your
|
84
|
+
scenario with `@ansi`. Alternatively you can add your own Before
|
85
|
+
hook that sets `@aruba_keep_ansi = true`.
|
86
|
+
|
87
|
+
## Reporting
|
88
|
+
|
89
|
+
*Important* - you need [Pygments](http://pygments.org/) installed to use this feature.
|
71
90
|
|
72
91
|
Aruba can generate a HTML page for each scenario that contains:
|
73
92
|
|
@@ -75,9 +94,9 @@ Aruba can generate a HTML page for each scenario that contains:
|
|
75
94
|
* The description from the scenario (You can use Markdown here)
|
76
95
|
* The command(s) that were run
|
77
96
|
* The output from those commands (in colour if the output uses ANSI escapes)
|
78
|
-
* The files that were created (
|
97
|
+
* The files that were created (syntax highlighted in in colour)
|
79
98
|
|
80
|
-
Reporting is off by default, but you can enable it by defining the`ARUBA_REPORT_DIR` environment variable, giving it the value
|
99
|
+
Reporting is off by default, but you can enable it by defining the `ARUBA_REPORT_DIR` environment variable, giving it the value
|
81
100
|
where reports should be written:
|
82
101
|
|
83
102
|
ARUBA_REPORT_DIR=doc cucumber features
|
@@ -89,10 +108,10 @@ This will use Aruba's built-in template by default (See the `templates` folder).
|
|
89
108
|
The templates directory must contain a `main.erb` and `files.erb` template. It can also contain other assets such
|
90
109
|
as css, javascript and images. All of these files will be copied over to the report dir well.
|
91
110
|
|
92
|
-
|
111
|
+
### Escaping Markdown
|
93
112
|
|
94
113
|
There are some edge cases where Gherkin and Markdown don't agree. Bullet lists using `*` is one example. The `*` is also an alias for
|
95
|
-
step keywords in Gherkin. Markdown headers (the kind starting with a
|
114
|
+
step keywords in Gherkin. Markdown headers (the kind starting with a `#`) is another example. They are parsed as comments by Gherkin. To use either of these, just escape them with a backslash. So instead of writing:
|
96
115
|
|
97
116
|
Scenario: Make tea
|
98
117
|
## Making tea
|
@@ -117,31 +136,22 @@ Another option is to use alternative Markdown syntax and omit conflicts and esca
|
|
117
136
|
|
118
137
|
Scenario: Make tea
|
119
138
|
Making tea
|
120
|
-
|
139
|
+
----------
|
121
140
|
- Get a pot
|
122
141
|
- And some hot water
|
123
142
|
|
124
143
|
Given...
|
125
144
|
|
126
|
-
|
127
|
-
|
128
|
-
Aruba doesn't bundle all of the tools needed for report generation. You have to add these yourself to your project:
|
129
|
-
|
130
|
-
* bcat (gem)
|
131
|
-
* rdiscount (gem)
|
132
|
-
* pygments
|
133
|
-
|
134
|
-
== Note on Patches/Pull Requests
|
145
|
+
## Note on Patches/Pull Requests
|
135
146
|
|
136
147
|
* Fork the project.
|
137
148
|
* Make your feature addition or bug fix.
|
138
149
|
* Add tests for it. This is important so I don't break it in a
|
139
150
|
future version unintentionally. Note: the existing tests may fail
|
140
|
-
|
141
|
-
* Commit, do not mess with rakefile, version, or history.
|
151
|
+
* Commit, do not mess with Rakefile, gemspec or History.
|
142
152
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
143
153
|
* Send me a pull request. Bonus points for topic branches.
|
144
154
|
|
145
|
-
|
155
|
+
## Copyright
|
146
156
|
|
147
|
-
Copyright (c) 2010 Aslak Hellesøy and
|
157
|
+
Copyright (c) 2010,2011 Aslak Hellesøy, David Chelimsky and Mike Sassak. See LICENSE for details.
|
data/aruba.gemspec
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'aruba'
|
5
|
-
s.version = '0.4.
|
5
|
+
s.version = '0.4.1'
|
6
6
|
s.authors = ["Aslak Hellesøy", "David Chelimsky", "Mike Sassak"]
|
7
7
|
s.description = 'CLI Steps for Cucumber, hand-crafted for you in Aruba'
|
8
8
|
s.summary = "aruba-#{s.version}"
|
9
9
|
s.email = 'cukes@googlegroups.com'
|
10
10
|
s.homepage = 'http://github.com/aslakhellesoy/aruba'
|
11
11
|
|
12
|
-
s.add_dependency 'cucumber', '>= 0.10.
|
12
|
+
s.add_dependency 'cucumber', '>= 0.10.7'
|
13
13
|
s.add_dependency 'childprocess', '>= 0.1.9'
|
14
14
|
s.add_dependency 'rspec', '>= 2.6.0'
|
15
15
|
s.add_dependency 'bcat', '>= 0.6.1'
|
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = `git ls-files`.split("\n")
|
20
20
|
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
21
21
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
-
s.extra_rdoc_files = ["LICENSE", "README.rdoc", "History.txt"]
|
23
22
|
s.rdoc_options = ["--charset=UTF-8"]
|
24
23
|
s.require_path = "lib"
|
25
24
|
end
|
data/lib/aruba/api.rb
CHANGED
@@ -148,6 +148,14 @@ module Aruba
|
|
148
148
|
unescape(actual).should include(unescape(expected))
|
149
149
|
end
|
150
150
|
|
151
|
+
def assert_matching_output(expected, actual)
|
152
|
+
unescape(actual).should =~ /#{unescape(expected)}/m
|
153
|
+
end
|
154
|
+
|
155
|
+
def assert_no_partial_output(unexpected, actual)
|
156
|
+
actual.should_not include(unexpected)
|
157
|
+
end
|
158
|
+
|
151
159
|
def assert_passing_with(expected)
|
152
160
|
assert_exit_status_and_partial_output(true, expected)
|
153
161
|
end
|
@@ -158,7 +166,7 @@ module Aruba
|
|
158
166
|
|
159
167
|
def assert_exit_status_and_partial_output(expect_to_pass, expected)
|
160
168
|
assert_partial_output(expected, all_output)
|
161
|
-
|
169
|
+
assert_success(expect_to_pass)
|
162
170
|
end
|
163
171
|
|
164
172
|
# TODO: Remove this. Call more methods elsewhere instead. Reveals more intent.
|
@@ -168,15 +176,19 @@ module Aruba
|
|
168
176
|
else
|
169
177
|
assert_partial_output(expected_output, all_output)
|
170
178
|
end
|
171
|
-
|
179
|
+
assert_success(expect_to_pass)
|
172
180
|
end
|
173
181
|
|
174
|
-
def
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
182
|
+
def assert_success(success)
|
183
|
+
success ? assert_exit_status(0) : assert_not_exit_status(0)
|
184
|
+
end
|
185
|
+
|
186
|
+
def assert_exit_status(status)
|
187
|
+
@last_exit_status.should == status
|
188
|
+
end
|
189
|
+
|
190
|
+
def assert_not_exit_status(status)
|
191
|
+
@last_exit_status.should_not == status
|
180
192
|
end
|
181
193
|
|
182
194
|
def processes
|
data/lib/aruba/cucumber.rb
CHANGED
@@ -79,20 +79,20 @@ Then /^the output from "([^"]*)" should contain "([^"]*)"$/ do |cmd, expected|
|
|
79
79
|
assert_partial_output(expected, output_from(cmd))
|
80
80
|
end
|
81
81
|
|
82
|
-
Then /^the output from "([^"]*)" should not contain "([^"]*)"$/ do |cmd,
|
83
|
-
output_from(cmd)
|
82
|
+
Then /^the output from "([^"]*)" should not contain "([^"]*)"$/ do |cmd, unexpected|
|
83
|
+
assert_no_partial_output(unexpected, output_from(cmd))
|
84
84
|
end
|
85
85
|
|
86
|
-
Then /^the output should not contain "([^"]*)"$/ do |
|
87
|
-
all_output
|
86
|
+
Then /^the output should not contain "([^"]*)"$/ do |unexpected|
|
87
|
+
assert_no_partial_output(unexpected, all_output)
|
88
88
|
end
|
89
89
|
|
90
90
|
Then /^the output should contain:$/ do |expected|
|
91
91
|
assert_partial_output(expected, all_output)
|
92
92
|
end
|
93
93
|
|
94
|
-
Then /^the output should not contain:$/ do |
|
95
|
-
all_output
|
94
|
+
Then /^the output should not contain:$/ do |unexpected|
|
95
|
+
assert_no_partial_output(unexpected, all_output)
|
96
96
|
end
|
97
97
|
|
98
98
|
Then /^the output should contain exactly "([^"]*)"$/ do |expected|
|
@@ -107,20 +107,20 @@ end
|
|
107
107
|
# you don't need regex, use "the output should contain" instead since
|
108
108
|
# that way, you don't have to escape regex characters that
|
109
109
|
# appear naturally in the output
|
110
|
-
Then /^the output should match \/([^\/]*)\/$/ do |
|
111
|
-
all_output
|
110
|
+
Then /^the output should match \/([^\/]*)\/$/ do |expected|
|
111
|
+
assert_matching_output(expected, all_output)
|
112
112
|
end
|
113
113
|
|
114
|
-
Then /^the output should match:$/ do |
|
115
|
-
all_output
|
114
|
+
Then /^the output should match:$/ do |expected|
|
115
|
+
assert_matching_output(expected, all_output)
|
116
116
|
end
|
117
117
|
|
118
118
|
Then /^the exit status should be (\d+)$/ do |exit_status|
|
119
|
-
|
119
|
+
assert_exit_status(exit_status.to_i)
|
120
120
|
end
|
121
121
|
|
122
122
|
Then /^the exit status should not be (\d+)$/ do |exit_status|
|
123
|
-
|
123
|
+
assert_not_exit_status(exit_status.to_i)
|
124
124
|
end
|
125
125
|
|
126
126
|
Then /^it should (pass|fail) with:$/ do |pass_fail, partial_output|
|
@@ -131,25 +131,21 @@ Then /^it should (pass|fail) with exactly:$/ do |pass_fail, exact_output|
|
|
131
131
|
assert_exit_status_and_output(pass_fail == "pass", exact_output, true)
|
132
132
|
end
|
133
133
|
|
134
|
-
Then /^it should (pass|fail) with regexp?:$/ do |pass_fail,
|
135
|
-
|
136
|
-
|
137
|
-
@last_exit_status.should == 0
|
138
|
-
else
|
139
|
-
@last_exit_status.should_not == 0
|
140
|
-
end
|
134
|
+
Then /^it should (pass|fail) with regexp?:$/ do |pass_fail, expected|
|
135
|
+
assert_matching_output(expected, all_output)
|
136
|
+
assert_success(pass_fail == 'pass')
|
141
137
|
end
|
142
138
|
|
143
|
-
Then /^the stderr should contain "([^"]*)"$/ do |
|
144
|
-
all_stderr
|
139
|
+
Then /^the stderr should contain "([^"]*)"$/ do |expected|
|
140
|
+
assert_partial_output(expected, all_stderr)
|
145
141
|
end
|
146
142
|
|
147
|
-
Then /^the stderr should contain:$/ do |
|
148
|
-
all_stderr
|
143
|
+
Then /^the stderr should contain:$/ do |expected|
|
144
|
+
assert_partial_output(expected, all_stderr)
|
149
145
|
end
|
150
146
|
|
151
|
-
Then /^the stderr should contain exactly:$/ do |
|
152
|
-
all_stderr
|
147
|
+
Then /^the stderr should contain exactly:$/ do |expected|
|
148
|
+
assert_exact_output(expected, all_stderr)
|
153
149
|
end
|
154
150
|
|
155
151
|
Then /^the stdout should contain "([^"]*)"$/ do |expected|
|
@@ -160,40 +156,40 @@ Then /^the stdout should contain:$/ do |expected|
|
|
160
156
|
assert_partial_output(expected, all_stdout)
|
161
157
|
end
|
162
158
|
|
163
|
-
Then /^the stdout should contain exactly:$/ do |
|
164
|
-
all_stdout
|
159
|
+
Then /^the stdout should contain exactly:$/ do |expected|
|
160
|
+
assert_exact_output(expected, all_stdout)
|
165
161
|
end
|
166
162
|
|
167
|
-
Then /^the stderr should not contain "([^"]*)"$/ do |
|
168
|
-
all_stderr
|
163
|
+
Then /^the stderr should not contain "([^"]*)"$/ do |unexpected|
|
164
|
+
assert_no_partial_output(unexpected, all_stderr)
|
169
165
|
end
|
170
166
|
|
171
|
-
Then /^the stderr should not contain:$/ do |
|
172
|
-
all_stderr
|
167
|
+
Then /^the stderr should not contain:$/ do |unexpected|
|
168
|
+
assert_no_partial_output(unexpected, all_stderr)
|
173
169
|
end
|
174
170
|
|
175
|
-
Then /^the stdout should not contain "([^"]*)"$/ do |
|
176
|
-
all_stdout
|
171
|
+
Then /^the stdout should not contain "([^"]*)"$/ do |unexpected|
|
172
|
+
assert_no_partial_output(unexpected, all_stdout)
|
177
173
|
end
|
178
174
|
|
179
|
-
Then /^the stdout should not contain:$/ do |
|
180
|
-
all_stdout
|
175
|
+
Then /^the stdout should not contain:$/ do |unexpected|
|
176
|
+
assert_no_partial_output(unexpected, all_stdout)
|
181
177
|
end
|
182
178
|
|
183
|
-
Then /^the stdout from "([^"]*)" should contain "([^"]*)"$/ do |cmd,
|
184
|
-
stdout_from(cmd)
|
179
|
+
Then /^the stdout from "([^"]*)" should contain "([^"]*)"$/ do |cmd, expected|
|
180
|
+
assert_partial_output(expected, stdout_from(cmd))
|
185
181
|
end
|
186
182
|
|
187
|
-
Then /^the stdout from "([^"]*)" should not contain "([^"]*)"$/ do |cmd,
|
188
|
-
stdout_from(cmd)
|
183
|
+
Then /^the stdout from "([^"]*)" should not contain "([^"]*)"$/ do |cmd, unexpected|
|
184
|
+
assert_no_partial_output(unexpected, stdout_from(cmd))
|
189
185
|
end
|
190
186
|
|
191
|
-
Then /^the stderr from "([^"]*)" should contain "([^"]*)"$/ do |cmd,
|
192
|
-
stderr_from(cmd)
|
187
|
+
Then /^the stderr from "([^"]*)" should contain "([^"]*)"$/ do |cmd, expected|
|
188
|
+
assert_partial_output(expected, stderr_from(cmd))
|
193
189
|
end
|
194
190
|
|
195
|
-
Then /^the stderr from "([^"]*)" should not contain "([^"]*)"$/ do |cmd,
|
196
|
-
stderr_from(cmd)
|
191
|
+
Then /^the stderr from "([^"]*)" should not contain "([^"]*)"$/ do |cmd, unexpected|
|
192
|
+
assert_no_partial_output(unexpected, stderr_from(cmd))
|
197
193
|
end
|
198
194
|
|
199
195
|
Then /^the file "([^"]*)" should not exist$/ do |file_name|
|
data/lib/aruba/reporting.rb
CHANGED
@@ -41,7 +41,7 @@ if(ENV['ARUBA_REPORT_DIR'])
|
|
41
41
|
|
42
42
|
def output
|
43
43
|
@aruba_keep_ansi = true # We want the output coloured!
|
44
|
-
escaped_stdout = CGI.
|
44
|
+
escaped_stdout = CGI.escapeHTML(all_stdout)
|
45
45
|
html = Bcat::ANSI.new(escaped_stdout).to_html
|
46
46
|
Bcat::ANSI::STYLES.each do |name, style|
|
47
47
|
html.gsub!(/style='#{style}'/, %{class="xterm_#{name}"})
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: aruba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.4.
|
5
|
+
version: 0.4.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- "Aslak Helles\xC3\xB8y"
|
@@ -12,7 +12,7 @@ autorequire:
|
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
14
|
|
15
|
-
date: 2011-06-
|
15
|
+
date: 2011-06-17 00:00:00 +01:00
|
16
16
|
default_executable:
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
requirements:
|
23
23
|
- - ">="
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 0.10.
|
25
|
+
version: 0.10.7
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
28
|
version_requirements: *id001
|
@@ -76,19 +76,17 @@ executables: []
|
|
76
76
|
|
77
77
|
extensions: []
|
78
78
|
|
79
|
-
extra_rdoc_files:
|
80
|
-
|
81
|
-
- README.rdoc
|
82
|
-
- History.txt
|
79
|
+
extra_rdoc_files: []
|
80
|
+
|
83
81
|
files:
|
84
82
|
- .document
|
85
83
|
- .gitignore
|
86
84
|
- .rvmrc
|
87
85
|
- Gemfile
|
88
86
|
- Gemfile.lock
|
89
|
-
- History.
|
87
|
+
- History.md
|
90
88
|
- LICENSE
|
91
|
-
- README.
|
89
|
+
- README.md
|
92
90
|
- Rakefile
|
93
91
|
- aruba.gemspec
|
94
92
|
- config/.gitignore
|
@@ -133,7 +131,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
131
|
requirements:
|
134
132
|
- - ">="
|
135
133
|
- !ruby/object:Gem::Version
|
136
|
-
hash:
|
134
|
+
hash: 2933985755347301009
|
137
135
|
segments:
|
138
136
|
- 0
|
139
137
|
version: "0"
|
@@ -142,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
140
|
requirements:
|
143
141
|
- - ">="
|
144
142
|
- !ruby/object:Gem::Version
|
145
|
-
hash:
|
143
|
+
hash: 2933985755347301009
|
146
144
|
segments:
|
147
145
|
- 0
|
148
146
|
version: "0"
|
@@ -152,7 +150,7 @@ rubyforge_project:
|
|
152
150
|
rubygems_version: 1.6.2
|
153
151
|
signing_key:
|
154
152
|
specification_version: 3
|
155
|
-
summary: aruba-0.4.
|
153
|
+
summary: aruba-0.4.1
|
156
154
|
test_files:
|
157
155
|
- features/exit_statuses.feature
|
158
156
|
- features/file_system_commands.feature
|