recumber 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDM0NjI2MTk3NDVjZmRkYzMxYmM5ZjYyN2ZmZjdiODNmM2Y5ODFiZQ==
5
+ data.tar.gz: !binary |-
6
+ NTJhZDIyOWM1YjA3MjhmM2YyYTk5OTg5NWI3NDRiZGVmMjNhNjFlYg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZDEzMmUyYzViYzBjYjc4YjVjMDhmZDA4NDcyMGVmNGJmNDk3ZjFmNjI2NjZl
10
+ ZTI5ZWZiNDgwMDJmNTJkZDA1NTE5MTRhMjYyMTdkNzNmZGJiNWMzMmJmYTJk
11
+ NWM4ZmQ4NjhmMTYwZjcxNzFmNzI0ODhhYTU2MGUzZTVmYjE2MWI=
12
+ data.tar.gz: !binary |-
13
+ M2I0ODk4OGMwZTMyYzRlY2Y5NjZkNzUxNTQ3M2MyYTcxMzIzOGY4ZGMyZGJm
14
+ YTE1NDFiNjFkMzQ2NWNmNmZjODFkZTgyNWNiYzBkOTNlYzVhMzU3MGQ0YTZj
15
+ ZWQ0NzcyZDk2OTkxOTEzYjVjMGMwYmI2ZTY2OTc2NjEwYjRkNmU=
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ # See http://help.github.com/ignore-files/ for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile ~/.gitignore_global
6
+
7
+ # Ignore bundler config
8
+ /.bundle
9
+
10
+ # Ignore all logfiles and tempfiles.
11
+ /log/*.log
12
+ /tmp
13
+
14
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :development, :test do
4
+ gem 'guard'
5
+ gem 'guard-rspec'
6
+ gem 'pry'
7
+ gem 'pry-nav'
8
+ gem 'pry-doc'
9
+ gem 'rake'
10
+ gem 'rspec'
11
+
12
+ gem 'rb-inotify', :require => false
13
+ gem 'rb-fsevent', :require => false
14
+ gem 'rb-fchange', :require => false
15
+ end
16
+
17
+ group :test do
18
+ gem 'fivemat'
19
+ end
20
+
21
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,73 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ recumber (0.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ coderay (1.0.9)
10
+ diff-lcs (1.2.4)
11
+ ffi (1.8.1)
12
+ fivemat (1.2.1)
13
+ formatador (0.2.4)
14
+ guard (1.8.0)
15
+ formatador (>= 0.2.4)
16
+ listen (>= 1.0.0)
17
+ lumberjack (>= 1.0.2)
18
+ pry (>= 0.9.10)
19
+ thor (>= 0.14.6)
20
+ guard-rspec (3.0.0)
21
+ guard (>= 1.8)
22
+ rspec (~> 2.13)
23
+ listen (1.1.2)
24
+ rb-fsevent (>= 0.9.3)
25
+ rb-inotify (>= 0.9)
26
+ rb-kqueue (>= 0.2)
27
+ lumberjack (1.0.3)
28
+ method_source (0.8.1)
29
+ pry (0.9.12.2)
30
+ coderay (~> 1.0.5)
31
+ method_source (~> 0.8)
32
+ slop (~> 3.4)
33
+ pry-doc (0.4.5)
34
+ pry (>= 0.9)
35
+ yard (>= 0.8)
36
+ pry-nav (0.2.3)
37
+ pry (~> 0.9.10)
38
+ rake (10.0.4)
39
+ rb-fchange (0.0.6)
40
+ ffi
41
+ rb-fsevent (0.9.3)
42
+ rb-inotify (0.9.0)
43
+ ffi (>= 0.5.0)
44
+ rb-kqueue (0.2.0)
45
+ ffi (>= 0.5.0)
46
+ rspec (2.13.0)
47
+ rspec-core (~> 2.13.0)
48
+ rspec-expectations (~> 2.13.0)
49
+ rspec-mocks (~> 2.13.0)
50
+ rspec-core (2.13.1)
51
+ rspec-expectations (2.13.0)
52
+ diff-lcs (>= 1.1.3, < 2.0)
53
+ rspec-mocks (2.13.1)
54
+ slop (3.4.5)
55
+ thor (0.18.1)
56
+ yard (0.8.6.1)
57
+
58
+ PLATFORMS
59
+ ruby
60
+
61
+ DEPENDENCIES
62
+ fivemat
63
+ guard
64
+ guard-rspec
65
+ pry
66
+ pry-doc
67
+ pry-nav
68
+ rake
69
+ rb-fchange
70
+ rb-fsevent
71
+ rb-inotify
72
+ recumber!
73
+ rspec
data/README.md ADDED
@@ -0,0 +1,4 @@
1
+ recumber
2
+ ========
3
+
4
+ Automatically reruns failed cucumber tests. Good for requeuing failed parallel cucumber tests to run serially.
data/bin/recumber ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
4
+
5
+ require 'recumber'
6
+
7
+ options = {}
8
+
9
+ parse_command_line_args
10
+
11
+ # pipe_input = read_piped_input
12
+ # puts "argf: #{pipe_input}"
13
+
14
+ cuke_input = File.read("log/cucumber/last_run.log")
15
+
16
+ print_title
17
+
18
+ if cuke_input.length > 0
19
+ failed_features = CucumberOutputParser.parse_failed_features(cuke_input)
20
+
21
+ if failed_features.empty?
22
+ print_no_failures_message
23
+ else
24
+ print_rerun_message failed_features
25
+ CucumberRunner.rerun_features failed_features
26
+ end
27
+ else
28
+ puts "Incorrect usage!"
29
+ print_line
30
+ puts option_parser
31
+ end
data/lib/recumber.rb ADDED
@@ -0,0 +1,43 @@
1
+ require 'optparse'
2
+ require 'recumber/cucumber_output_parser'
3
+ require 'recumber/cucumber_runner'
4
+
5
+ def read_piped_input
6
+ ARGF.read
7
+ end
8
+
9
+ def parse_command_line_args
10
+ option_parser = OptionParser.new do |option|
11
+ option.banner = "Usage: recumber COMMAND [OPTIONS]"
12
+ option.separator ""
13
+ option.separator "Commands"
14
+ option.separator ""
15
+ option.separator "Options"
16
+
17
+ option.on("-z","--zeus","Rerun the failing steps under Zeus") do
18
+ options[:zeus] = true
19
+ end
20
+
21
+ option.on("-h","--help","help") do
22
+ puts option_parser
23
+ end
24
+ end
25
+
26
+ option_parser.parse!
27
+ end
28
+
29
+ def print_no_failures_message
30
+ puts "All tests passing. Nothing to re-run"
31
+ end
32
+
33
+ def print_title
34
+ puts "------------------------------------"
35
+ puts "| Recumber |"
36
+ puts "------------------------------------"
37
+ end
38
+
39
+ def print_rerun_message(failed_features)
40
+ failed_features.each do |feature|
41
+ puts "Recumbering: #{feature}"
42
+ end
43
+ end
@@ -0,0 +1,30 @@
1
+ class CucumberOutputParser
2
+
3
+ def self.parse_failed_features(cucumber_output)
4
+ file_list = remove_non_cucumber_lines(cucumber_output)
5
+ file_list = remove_cucumber_commands(file_list)
6
+ file_list = remove_comment_lines(file_list)
7
+ file_list = collapse_newlines(file_list)
8
+
9
+ file_list.split(" ")
10
+ end
11
+
12
+ private
13
+
14
+ def self.remove_non_cucumber_lines(lines)
15
+ lines.gsub(/^((?!cucumber).)*$/, "").strip
16
+ end
17
+
18
+ def self.remove_cucumber_commands(lines)
19
+ lines.gsub(/cucumber/, "")
20
+ end
21
+
22
+ def self.remove_comment_lines(lines)
23
+ lines.gsub(/#.*/, "")
24
+ end
25
+
26
+ def self.collapse_newlines(lines)
27
+ lines.gsub(/\n/, "")
28
+ end
29
+
30
+ end
@@ -0,0 +1,10 @@
1
+ class CucumberRunner
2
+
3
+ def self.rerun_features(feature_paths)
4
+ command = "cucumber #{feature_paths.join(' ')}"
5
+ puts "Recumber command: #{command}"
6
+
7
+ system(command)
8
+ end
9
+
10
+ end
data/recumber.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "recumber"
7
+ s.version = "0.0.1"
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Todd Mohney"]
10
+ s.email = ["toddmohney@gmail.com"]
11
+ s.homepage = "https://github.com/toddmohney/recumber"
12
+ s.summary = "Automatically re-runs failed cucumber features."
13
+ s.description = "Automatically re-runs failed cucumber features."
14
+ s.license = "MIT"
15
+ s.rubyforge_project = s.name
16
+
17
+ s.required_rubygems_version = ">= 1.3.6"
18
+
19
+ # The list of files to be contained in the gem
20
+ s.files = `git ls-files`.split("\n")
21
+ s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
22
+
23
+ s.require_path = 'lib'
24
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe CucumberOutputParser do
4
+
5
+ describe ".parse_failed_features" do
6
+ subject { CucumberOutputParser }
7
+
8
+ let(:cucumber_output) {
9
+ <<-OUTPUT
10
+ blah blah blah
11
+
12
+ cucumber features/thing.feature # here's a comment
13
+ cucumber features/other_thing.feature # oh no, another comment
14
+
15
+ user 1.3.4,
16
+ sys 328
17
+ OUTPUT
18
+ }
19
+
20
+ it "removes non-cucumber-command lines" do
21
+ output = described_class.parse_failed_features(cucumber_output)
22
+ output.should == ["features/thing.feature", "features/other_thing.feature"]
23
+ end
24
+
25
+ it "removes cucumber commands at the beginning of the line" do
26
+ output = described_class.parse_failed_features(cucumber_output)
27
+ output.should == ["features/thing.feature", "features/other_thing.feature"]
28
+ end
29
+
30
+ it "removes cucumber comments at the end on the line" do
31
+ output = described_class.parse_failed_features(cucumber_output)
32
+ output.should == ["features/thing.feature", "features/other_thing.feature"]
33
+ end
34
+
35
+ it "collapses newlines" do
36
+ output = described_class.parse_failed_features(cucumber_output)
37
+ output.should == ["features/thing.feature", "features/other_thing.feature"]
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe CucumberRunner do
4
+
5
+ describe ".rerun_features" do
6
+ let(:feature_paths) { [ "cmd_1", "cmd_2" ] }
7
+ let(:system) { double }
8
+
9
+
10
+ it "calls 'system' with the joined array" do
11
+ CucumberRunner.should_receive(:`).with("cucumber cmd_1 cmd_2")
12
+ CucumberRunner.rerun_features(feature_paths)
13
+ end
14
+ end
15
+
16
+ end
@@ -0,0 +1,2 @@
1
+ require 'pry'
2
+ require 'recumber'
data/test/sample_input ADDED
@@ -0,0 +1,193 @@
1
+ Using recorded test runtime
2
+ 6 processes for 89 features, ~ 14 features per process
3
+ Rack::File headers parameter replaces cache_control after Rack 1.5.
4
+ Rack::File headers parameter replaces cache_control after Rack 1.5.
5
+ Rack::File headers parameter replaces cache_control after Rack 1.5.
6
+ Rack::File headers parameter replaces cache_control after Rack 1.5.
7
+ Rack::File headers parameter replaces cache_control after Rack 1.5.
8
+ Rack::File headers parameter replaces cache_control after Rack 1.5.
9
+ Using the parallel profile...
10
+ Lowering logging level to :warn for parallel ...
11
+ Using the parallel profile...
12
+ Lowering logging level to :warn for parallel ...
13
+ Using the parallel profile...
14
+ Lowering logging level to :warn for parallel ...
15
+ Using the parallel profile...
16
+ Lowering logging level to :warn for parallel ...
17
+ Using the parallel profile...
18
+ Lowering logging level to :warn for parallel ...
19
+ Using the parallel profile...
20
+ Lowering logging level to :warn for parallel ...
21
+ You are using WebMock 1.11.0. VCR is known to work with WebMock >= 1.8.0, < 1.11. It may not work with this version.
22
+ You are using WebMock 1.11.0. VCR is known to work with WebMock >= 1.8.0, < 1.11. It may not work with this version.
23
+ You are using WebMock 1.11.0. VCR is known to work with WebMock >= 1.8.0, < 1.11. It may not work with this version.
24
+ You are using WebMock 1.11.0. VCR is known to work with WebMock >= 1.8.0, < 1.11. It may not work with this version.
25
+ You are using WebMock 1.11.0. VCR is known to work with WebMock >= 1.8.0, < 1.11. It may not work with this version.
26
+ You are using WebMock 1.11.0. VCR is known to work with WebMock >= 1.8.0, < 1.11. It may not work with this version.
27
+ ......................................................................................................................................................................................................................................................................................................................................F---Saved file screenshot_2013-05-15-17-16-29.496
28
+ .................................WARNING: There appears to be a bug in WebMock's after_request hook
29
+ and VCR is attempting to work around it. Some VCR features
30
+ may not work properly.
31
+ WARNING: There appears to be a bug in WebMock's after_request hook
32
+ and VCR is attempting to work around it. Some VCR features
33
+ may not work properly.
34
+ .............................................................................................................................................................F-.Saved file screenshot_2013-05-15-17-17-32.104
35
+ .........................................F----Saved file screenshot_2013-05-15-17-17-46.822
36
+ .......................................................................................................................FSaved file screenshot_2013-05-15-17-18-25.956
37
+ .....................................................................................--------..................WARNING: There appears to be a bug in WebMock's after_request hook
38
+ and VCR is attempting to work around it. Some VCR features
39
+ may not work properly.
40
+ WARNING: There appears to be a bug in WebMock's after_request hook
41
+ and VCR is attempting to work around it. Some VCR features
42
+ may not work properly.
43
+ ........................................................................................................F-Saved file screenshot_2013-05-15-17-19-47.777
44
+ .......................F-Saved file screenshot_2013-05-15-17-19-54.548
45
+ ..............................F----Saved file screenshot_2013-05-15-17-20-02.796
46
+ ..-------..........................F---Saved file screenshot_2013-05-15-17-20-10.753
47
+ .....................................................................................................................................................................................................................................................................................................................F---.Saved file screenshot_2013-05-15-17-21-56.357
48
+ ........................................................................................FSaved file screenshot_2013-05-15-17-22-22.916
49
+ ..........................................................................F-..Saved file screenshot_2013-05-15-17-22-47.887
50
+ .....................................................................................................................................................................WARNING: There appears to be a bug in WebMock's after_request hook
51
+ and VCR is attempting to work around it. Some VCR features
52
+ may not work properly.
53
+ WARNING: There appears to be a bug in WebMock's after_request hook
54
+ and VCR is attempting to work around it. Some VCR features
55
+ may not work properly.
56
+ ........................................................................................................................................................................................................................................................................................................................................................................................................F-------Saved file screenshot_2013-05-15-17-25-29.357
57
+ .......................
58
+
59
+ (::) failed steps (::)
60
+
61
+ Unable to find link or button "Submit a Startup" (Capybara::ElementNotFound)
62
+ ./features/step_definitions/applying_for_funding_steps.rb:180:in `/^I open a funding application with a funding stage question$/'
63
+ features/startups/application_response/funding_stage_populated_from_preferences.feature:12:in `When I open a funding application with a funding stage question'
64
+
65
+ Unable to find link or button "Submit a Startup" (Capybara::ElementNotFound)
66
+ ./features/step_definitions/applying_for_funding_steps.rb:180:in `/^I open a funding application with a funding stage question$/'
67
+ features/startups/application_response/funding_stage_populated_from_preferences.feature:20:in `When I open a funding application with a funding stage question'
68
+
69
+ Unable to find link or button "Submit a Startup" (Capybara::ElementNotFound)
70
+ ./features/step_definitions/startups/application_response_propogation_steps.rb:16:in `/^I fill in a funding application with:$/'
71
+ features/startups/application_response/propagation.feature:34:in `When I fill in a funding application with:'
72
+
73
+ Unable to find link or button "Submit a Startup" (Capybara::ElementNotFound)
74
+ ./features/step_definitions/startups/application_response_propogation_steps.rb:16:in `/^I fill in a funding application with:$/'
75
+ features/startups/application_response/propagation.feature:102:in `When I fill in a funding application with:'
76
+
77
+ Failing Scenarios:
78
+ cucumber -p parallel features/startups/application_response/funding_stage_populated_from_preferences.feature:8 # Scenario: No stage specified in profile
79
+ cucumber -p parallel features/startups/application_response/funding_stage_populated_from_preferences.feature:16 # Scenario: Stage specified in profile
80
+ cucumber -p parallel features/startups/application_response/propagation.feature:7 # Scenario: Choosing to propogate values to my preferences
81
+ cucumber -p parallel features/startups/application_response/propagation.feature:85 # Scenario: Choosing NOT to propogate values to my preferences
82
+
83
+ 56 scenarios (4 failed, 52 passed)
84
+ 418 steps (4 failed, 9 skipped, 405 passed)
85
+ 10m51.671s
86
+ ..................................................................................................................................................................................
87
+
88
+ (::) failed steps (::)
89
+
90
+ Unable to find link or button "Submit a Startup" (Capybara::ElementNotFound)
91
+ ./features/step_definitions/deal_list_steps.rb:421:in `block (2 levels) in <top (required)>'
92
+ ./features/step_definitions/deal_list_steps.rb:420:in `/^"(.*?)" submits their application form$/'
93
+ features/groups/deal_stages.feature:80:in `And "Ben's Tash" submits their application form'
94
+
95
+ expected to find text "Event For My Friend" in "1 Sandy Kling HOME STARTUPS INVESTORS ALL All Investors Startups People Edit Wunsch, Barton and Schamberger Angel Group Hermistonside, South Carolina, Holy See (Vatican City State) 1 Members ADMIN Preferences PUBLIC Group Profile Portfolio PRIVATE Dashboard Deal List Events Documents MEMBERS Member List Subgroups All Group Events (1) My Events (0) Create New Event MAY 15 Event For My Friend May 15 - Eastern Time (US & Canada) No Response 1 Invited, 0 Attending, 0 Maybe Investor (Sandy Kling) Current Language: en Check translation Company Info Trusted Network Get Funded Find & Manage Investments Venture Funds & Groups Blog Interviews Contact Us @ 2013 Gust, LLC. All rights reserved Terms of Service Privacy FAQs Feedback & Support English Français Español Português 简体中文 Русский" (RSpec::Expectations::ExpectationNotMetError)
96
+ ./features/support/helpers/event_helpers.rb:35:in `invite_user_via_email'
97
+ ./features/step_definitions/group_steps.rb:1411:in `/^I create an event and invite the investor$/'
98
+ features/groups/inviting_to_events.feature:8:in `And I create an event and invite the investor'
99
+
100
+ expected #has_no_selector?("form.edit-event") to return true, got false (RSpec::Expectations::ExpectationNotMetError)
101
+ ./features/support/helpers/event_helpers.rb:76:in `save_edit_event_form'
102
+ ./features/step_definitions/inviting_to_events_steps.rb:100:in `/^I cannot re-invite the investor group member to the event$/'
103
+ features/groups/inviting_to_events.feature:44:in `Then I cannot re-invite the investor group member to the event'
104
+
105
+ Unable to find link or button "Submit a Startup" (Capybara::ElementNotFound)
106
+ ./features/step_definitions/applying_for_funding_steps.rb:202:in `/^I fill in a funding application with funding stage "(.*?)"$/'
107
+ features/startups/application_response/funding_stage_propagates_to_preferences.feature:11:in `When I fill in a funding application with funding stage "Series A Round"'
108
+
109
+ Failing Scenarios:
110
+ cucumber -p parallel features/groups/deal_stages.feature:72 # Scenario: Automaticaly granting access to deals by associating subgroups to the "New Deals" stage
111
+ cucumber -p parallel features/groups/inviting_to_events.feature:3 # Scenario: Event creation: inviting an non-group-member investor via their registered email
112
+ cucumber -p parallel features/groups/inviting_to_events.feature:34 # Scenario: Group admin can invite an active investor-group member via the dropdown
113
+ cucumber -p parallel features/startups/application_response/funding_stage_propagates_to_preferences.feature:8 # Scenario: Choosing to (or not) propogate stage to my preferences
114
+
115
+ 67 scenarios (4 failed, 63 passed)
116
+ 471 steps (4 failed, 12 skipped, 455 passed)
117
+ 11m32.038s
118
+
119
+
120
+ (::) failed steps (::)
121
+
122
+ expected to find text "These are the products & services that we offer." in "Monique Walsh HOME STARTUPS INVESTORS ALL All Investors Startups People Back to Deal List > Startup Profile Edit Grady, Farrell and Toy East Ericville, Indiana, Saint Helena Biotechnology Aliquam facilis accusantium quasi. ADMIN Dashboard Relationships PUBLIC Startup Profile PRIVATE Business Details Financing Documents COMPANY FINANCIALS (SHP) Edit Previous Capital unspecified Revenue Run Rate unspecified Monthly Burn Rate unspecified Revenue Driver unspecified ANNUAL FINANCIALS 2012 Edit 2013 Edit 2014 Edit 2015 Edit 2016 Edit Revenue Driver Revenue Expenditure Profit (Loss) + Add Another Year PRODUCT/SERVICES Edit These are the products & services that we offer. CUSTOMER PROBLEM Edit TARGET MARKET Edit CUSTOMERS Edit SALES/MARKETING STRATEGY Edit BUSINESS MODEL Edit COMPETITORS Edit COMPETITIVE ADVANTAGE Edit MANAGEMENT TEAM Edit Contact Edit Wilhelm Hackett Email East Ericville, Indiana, Saint Helena Entrepreneur (Monique Walsh) Current Language: en Check translation Company Info Trusted Network Get Funded Find & Manage Investments Venture Funds & Groups Blog Interviews Contact Us @ 2013 Gust, LLC. All rights reserved Terms of Service Privacy FAQs Feedback & Support English Français Español Português 简体中文 Русский" (RSpec::Expectations::ExpectationNotMetError)
123
+ ./features/step_definitions/startup_steps.rb:130:in `/^I should see my company's product services$/'
124
+ features/startups/startups.feature:48:in `Then I should see my company's product services'
125
+
126
+ Failing Scenarios:
127
+ cucumber -p parallel features/startups/startups.feature:41 # Scenario: Editing a Startup's Business Details
128
+
129
+ 63 scenarios (1 failed, 62 passed)
130
+ 406 steps (1 failed, 405 passed)
131
+ 11m32.109s
132
+ .......................
133
+
134
+ 44 scenarios (44 passed)
135
+ 308 steps (308 passed)
136
+ 11m38.822s
137
+ ...............................
138
+
139
+ (::) failed steps (::)
140
+
141
+ Unable to find link or button "Create Internal Deal" (Capybara::ElementNotFound)
142
+ ./features/step_definitions/internal_deal_steps.rb:55:in `/^I submit the internal deal form$/'
143
+ features/groups/internal_deal.feature:14:in `When I submit the internal deal form'
144
+
145
+ Element not found in the cache - perhaps the page has changed since it was looked up (Selenium::WebDriver::Error::StaleElementReferenceError)
146
+ [remote server] resource://fxdriver/modules/web_element_cache.js:7349:in `fxdriver.cache.getElementAt'
147
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91566-1799nrc/extensions/fxdriver@googlecode.com/components/command_processor.js:6946:in `Utils.getElementAt'
148
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91566-1799nrc/extensions/fxdriver@googlecode.com/components/command_processor.js:9942:in `WebElement.isElementDisplayed'
149
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91566-1799nrc/extensions/fxdriver@googlecode.com/components/command_processor.js:10421:in `DelayedCommand.prototype.executeInternal_/h'
150
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91566-1799nrc/extensions/fxdriver@googlecode.com/components/command_processor.js:10426:in `DelayedCommand.prototype.executeInternal_'
151
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91566-1799nrc/extensions/fxdriver@googlecode.com/components/command_processor.js:10366:in `DelayedCommand.prototype.execute/<'
152
+ ./features/support/helpers/layout_helpers.rb:79:in `wait_for_modal_dialog_to_close'
153
+ ./features/support/helpers/deal_room_helpers.rb:8:in `add_and_submit_deal_members_in_form'
154
+ ./features/step_definitions/inviting_members_to_deals_steps.rb:67:in `/^I can invite an unregistered user to the deal via their email address$/'
155
+ features/groups/inviting_members_to_deals.feature:12:in `Then I can invite an unregistered user to the deal via their email address'
156
+
157
+ Failing Scenarios:
158
+ cucumber -p parallel features/groups/internal_deal.feature:7 # Scenario: Creating an internal deal
159
+ cucumber -p parallel features/groups/inviting_members_to_deals.feature:7 # Scenario: Deal admin can invite a new user via their email
160
+
161
+ 54 scenarios (2 failed, 52 passed)
162
+ 304 steps (2 failed, 4 skipped, 298 passed)
163
+ 11m54.148s
164
+ ..
165
+
166
+ (::) failed steps (::)
167
+
168
+ Element not found in the cache - perhaps the page has changed since it was looked up (Selenium::WebDriver::Error::StaleElementReferenceError)
169
+ [remote server] resource://fxdriver/modules/web_element_cache.js:7349:in `fxdriver.cache.getElementAt'
170
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91575-1bixz52/extensions/fxdriver@googlecode.com/components/command_processor.js:6946:in `Utils.getElementAt'
171
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91575-1bixz52/extensions/fxdriver@googlecode.com/components/command_processor.js:9860:in `WebElement.getElementText'
172
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91575-1bixz52/extensions/fxdriver@googlecode.com/components/command_processor.js:10421:in `DelayedCommand.prototype.executeInternal_/h'
173
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91575-1bixz52/extensions/fxdriver@googlecode.com/components/command_processor.js:10426:in `DelayedCommand.prototype.executeInternal_'
174
+ [remote server] file:///var/folders/44/mxq47wmn4812x3yprndq71480000gn/T/webdriver-profile20130515-91575-1bixz52/extensions/fxdriver@googlecode.com/components/command_processor.js:10366:in `DelayedCommand.prototype.execute/<'
175
+ ./features/step_definitions/deal_room_member_steps.rb:111:in `/^I blank out the review$/'
176
+ features/groups/deal_room_member.feature:92:in `When I blank out the review'
177
+
178
+ Failing Scenarios:
179
+ cucumber -p parallel features/groups/deal_room_member.feature:83 # Scenario: Reviewing a deal
180
+
181
+ 63 scenarios (1 failed, 62 passed)
182
+ 412 steps (1 failed, 3 skipped, 408 passed)
183
+ 11m56.886s
184
+
185
+ 347 scenarios (12 failed, 335 passed)
186
+ 2319 steps (12 failed, 28 skipped, 2279 passed)
187
+
188
+ Took 738.292295 seconds
189
+ Cucumbers Failed
190
+
191
+ real 15m36.462s
192
+ user 69m23.422s
193
+ sys 4m52.395s
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: recumber
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Todd Mohney
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-05-20 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Automatically re-runs failed cucumber features.
14
+ email:
15
+ - toddmohney@gmail.com
16
+ executables:
17
+ - recumber
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - .gitignore
22
+ - Gemfile
23
+ - Gemfile.lock
24
+ - README.md
25
+ - bin/recumber
26
+ - lib/recumber.rb
27
+ - lib/recumber/cucumber_output_parser.rb
28
+ - lib/recumber/cucumber_runner.rb
29
+ - recumber.gemspec
30
+ - spec/lib/recumber/cucumber_output_parser_spec.rb
31
+ - spec/lib/recumber/cucumber_runner_spec.rb
32
+ - spec/spec_helper.rb
33
+ - test/sample_input
34
+ homepage: https://github.com/toddmohney/recumber
35
+ licenses:
36
+ - MIT
37
+ metadata: {}
38
+ post_install_message:
39
+ rdoc_options: []
40
+ require_paths:
41
+ - lib
42
+ required_ruby_version: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ required_rubygems_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ! '>='
50
+ - !ruby/object:Gem::Version
51
+ version: 1.3.6
52
+ requirements: []
53
+ rubyforge_project: recumber
54
+ rubygems_version: 2.0.3
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: Automatically re-runs failed cucumber features.
58
+ test_files: []
59
+ has_rdoc: