Commit b4aa8e60c3c7b7131976e0916f0a559f0e9353cf

Authored by Luke Baker
1 parent b55dc73d

retry failed tests once to verify failure

Showing 1 changed file with 15 additions and 2 deletions   Show diff stats
lib/tasks/test_api.rake
@@ -100,6 +100,7 @@ namespace :test_api do @@ -100,6 +100,7 @@ namespace :test_api do
100 100
101 desc "Description here" 101 desc "Description here"
102 task(:question_vote_consistency => :environment) do 102 task(:question_vote_consistency => :environment) do
  103 + first_run_errors = []
103 errors = [] 104 errors = []
104 successes = [] 105 successes = []
105 106
@@ -111,7 +112,7 @@ namespace :test_api do @@ -111,7 +112,7 @@ namespace :test_api do
111 message, error_occurred = send(taskname, question) 112 message, error_occurred = send(taskname, question)
112 debug("Completed task #{taskname} for question #{question.id}") 113 debug("Completed task #{taskname} for question #{question.id}")
113 if error_occurred 114 if error_occurred
114 - errors << message 115 + first_run_errors << [taskname, question]
115 else 116 else
116 successes << message 117 successes << message
117 end 118 end
@@ -122,7 +123,7 @@ namespace :test_api do @@ -122,7 +123,7 @@ namespace :test_api do
122 @choice_tasks.each do |taskname, description| 123 @choice_tasks.each do |taskname, description|
123 message, error_occurred = send(taskname, choice) 124 message, error_occurred = send(taskname, choice)
124 if error_occurred 125 if error_occurred
125 - errors << message 126 + first_run_errors << [taskname, choice]
126 else 127 else
127 successes << message 128 successes << message
128 end 129 end
@@ -132,6 +133,18 @@ namespace :test_api do @@ -132,6 +133,18 @@ namespace :test_api do
132 133
133 end 134 end
134 135
  136 + # retry the failed tasks in case they failed due to
  137 + # votes happening while the test was running.
  138 + debug("Re-running tasks that previously failed")
  139 + first_run_errors.each do |err|
  140 + message, error_occurred = send(err[0], err[1].reload)
  141 + if error_occurred
  142 + errors << message
  143 + else
  144 + successes << message
  145 + end
  146 + end
  147 +
135 @global_tasks.each do |taskname, description| 148 @global_tasks.each do |taskname, description|
136 debug("Starting global task #{taskname}") 149 debug("Starting global task #{taskname}")
137 message, error_occurred = send(taskname) 150 message, error_occurred = send(taskname)