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 100  
101 101 desc "Description here"
102 102 task(:question_vote_consistency => :environment) do
  103 + first_run_errors = []
103 104 errors = []
104 105 successes = []
105 106  
... ... @@ -111,7 +112,7 @@ namespace :test_api do
111 112 message, error_occurred = send(taskname, question)
112 113 debug("Completed task #{taskname} for question #{question.id}")
113 114 if error_occurred
114   - errors << message
  115 + first_run_errors << [taskname, question]
115 116 else
116 117 successes << message
117 118 end
... ... @@ -122,7 +123,7 @@ namespace :test_api do
122 123 @choice_tasks.each do |taskname, description|
123 124 message, error_occurred = send(taskname, choice)
124 125 if error_occurred
125   - errors << message
  126 + first_run_errors << [taskname, choice]
126 127 else
127 128 successes << message
128 129 end
... ... @@ -132,6 +133,18 @@ namespace :test_api do
132 133  
133 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 148 @global_tasks.each do |taskname, description|
136 149 debug("Starting global task #{taskname}")
137 150 message, error_occurred = send(taskname)
... ...