parallel_tests 0.14.0 → 0.15.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/Readme.md +1 -0
- data/lib/parallel_tests/cucumber/runner.rb +24 -0
- data/lib/parallel_tests/test/runner.rb +2 -1
- data/lib/parallel_tests/version.rb +1 -1
- data/spec/integration_spec.rb +18 -0
- data/spec/parallel_tests/cucumber/runner_spec.rb +13 -0
- metadata +3 -3
data/Gemfile.lock
CHANGED
data/Readme.md
CHANGED
@@ -289,6 +289,7 @@ inspired by [pivotal labs](http://pivotallabs.com/users/miked/blog/articles/849-
|
|
289
289
|
- [Alejandro Pulver](https://github.com/alepulver)
|
290
290
|
- [Felix Clack](https://github.com/felixclack)
|
291
291
|
- [Izaak Alpert](https://github.com/karlhungus)
|
292
|
+
- [Micah Geisel](https://github.com/botandrose)
|
292
293
|
|
293
294
|
[Michael Grosser](http://grosser.it)<br/>
|
294
295
|
michael@grosser.it<br/>
|
@@ -7,6 +7,30 @@ module ParallelTests
|
|
7
7
|
def name
|
8
8
|
'cucumber'
|
9
9
|
end
|
10
|
+
|
11
|
+
def line_is_result?(line)
|
12
|
+
super or line =~ failing_scenario_regex
|
13
|
+
end
|
14
|
+
|
15
|
+
def summarize_results(results)
|
16
|
+
output = []
|
17
|
+
|
18
|
+
failing_scenarios = results.grep(failing_scenario_regex)
|
19
|
+
if failing_scenarios.any?
|
20
|
+
failing_scenarios.unshift("Failing Scenarios:")
|
21
|
+
output << failing_scenarios.join("\n")
|
22
|
+
end
|
23
|
+
|
24
|
+
output << super
|
25
|
+
|
26
|
+
output.join("\n\n")
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def failing_scenario_regex
|
32
|
+
/^cucumber features\/.+:\d+/
|
33
|
+
end
|
10
34
|
end
|
11
35
|
end
|
12
36
|
end
|
@@ -31,6 +31,7 @@ module ParallelTests
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def line_is_result?(line)
|
34
|
+
line.gsub!(/[.F*]/,'')
|
34
35
|
line =~ /\d+ failure/
|
35
36
|
end
|
36
37
|
|
@@ -72,7 +73,7 @@ module ParallelTests
|
|
72
73
|
|
73
74
|
def find_results(test_output)
|
74
75
|
test_output.split("\n").map {|line|
|
75
|
-
line
|
76
|
+
line.gsub!(/\e\[\d+m/,'')
|
76
77
|
next unless line_is_result?(line)
|
77
78
|
line
|
78
79
|
}.compact
|
data/spec/integration_spec.rb
CHANGED
@@ -236,6 +236,8 @@ describe 'CLI' do
|
|
236
236
|
write "features/steps/a.rb", "
|
237
237
|
Given('I print TEST_ENV_NUMBER'){ puts \"YOUR TEST ENV IS \#{ENV['TEST_ENV_NUMBER']}!\" }
|
238
238
|
And('I sleep a bit'){ sleep 0.2 }
|
239
|
+
And('I pass'){ true }
|
240
|
+
And('I fail'){ fail }
|
239
241
|
"
|
240
242
|
end
|
241
243
|
|
@@ -286,6 +288,22 @@ describe 'CLI' do
|
|
286
288
|
results.should include("2 processes for 0 features")
|
287
289
|
results.should include("Took")
|
288
290
|
end
|
291
|
+
|
292
|
+
it "collates failing scenarios" do
|
293
|
+
write "features/pass.feature", "Feature: xxx\n Scenario: xxx\n Given I pass"
|
294
|
+
write "features/fail1.feature", "Feature: xxx\n Scenario: xxx\n Given I fail"
|
295
|
+
write "features/fail2.feature", "Feature: xxx\n Scenario: xxx\n Given I fail"
|
296
|
+
results = run_tests "features", :processes => 3, :type => "cucumber", :fail => true
|
297
|
+
|
298
|
+
results.should include """
|
299
|
+
Failing Scenarios:
|
300
|
+
cucumber features/fail2.feature:2 # Scenario: xxx
|
301
|
+
cucumber features/fail1.feature:2 # Scenario: xxx
|
302
|
+
|
303
|
+
3 scenarios (2 failed, 1 passed)
|
304
|
+
3 steps (2 failed, 1 passed)
|
305
|
+
"""
|
306
|
+
end
|
289
307
|
end
|
290
308
|
|
291
309
|
context "Spinach", :fails_on_ruby_187 => true do
|
@@ -8,5 +8,18 @@ describe ParallelTests::Cucumber::Runner do
|
|
8
8
|
it_should_behave_like 'gherkin runners' do
|
9
9
|
let(:runner_name) {'cucumber'}
|
10
10
|
let(:runner_class){ParallelTests::Cucumber::Runner}
|
11
|
+
|
12
|
+
describe :summarize_results do
|
13
|
+
def call(*args)
|
14
|
+
runner_class().summarize_results(*args)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "collates failing scenarios" do
|
18
|
+
results = ["Failing Scenarios:", "cucumber features/failure:1", "cucumber features/failure:2",
|
19
|
+
"Failing Scenarios:", "cucumber features/failure:3", "cucumber features/failure:4",
|
20
|
+
"Failing Scenarios:", "cucumber features/failure:5", "cucumber features/failure:6"]
|
21
|
+
call(results).should == "Failing Scenarios:\ncucumber features/failure:1\ncucumber features/failure:2\ncucumber features/failure:3\ncucumber features/failure:4\ncucumber features/failure:5\ncucumber features/failure:6\n\n"
|
22
|
+
end
|
23
|
+
end
|
11
24
|
end
|
12
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parallel_tests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.15.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -102,7 +102,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
102
|
version: '0'
|
103
103
|
segments:
|
104
104
|
- 0
|
105
|
-
hash:
|
105
|
+
hash: 2228048421708022476
|
106
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
segments:
|
113
113
|
- 0
|
114
|
-
hash:
|
114
|
+
hash: 2228048421708022476
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project:
|
117
117
|
rubygems_version: 1.8.25
|