CI Coverage paralel rspec
Summary
Since Gitlab 9.1 we noticed a drop for our rspec coverage. We run our specs parallel.
The problem is that #extract_coverage stops looking on the output of the first part (in this case: 33.84%) instead of the complete score (84.19%)
Steps to reproduce
Run parallel specs or test with these lines:
[skipped output]
Finished in 4 minutes 24.4 seconds (files took 29.35 seconds to load)
348 examples, 0 failures
Randomized with seed 22325
.......Coverage report generated for (6/6) to /cms/coverage. 13809 / 40809 LOC (33.84%) covered.
...........................................................................................................................
...
.........
..........
......
....................................................................................................................................................................................................
..
..........................
Finished in 5 minutes 36 seconds (files took 29.98 seconds to load)
441 examples, 0 failures
Randomized with seed 32432
..................Coverage report generated for (2/6), (6/6) to /cms/coverage. 16599 / 38385 LOC (43.24%) covered.
.....
Finished in 5 minutes 46 seconds (files took 30.27 seconds to load)
385 examples, 0 failures
Randomized with seed 53718
........................................
Finished in 5 minutes 47 seconds (files took 30.63 seconds to load)
405 examples, 0 failures
Randomized with seed 52280
...Coverage report generated for (2/6), (4/6), (6/6) to /cms/coverage. 18321 / 36816 LOC (49.76%) covered.
...Coverage report generated for (2/6), (3/6), (4/6), (6/6) to /cms/coverage. 19377 / 36174 LOC (53.57%) covered.
.....................................................................................................................................
Finished in 6 minutes 35 seconds (files took 29.44 seconds to load)
411 examples, 0 failures
Randomized with seed 4180
..Coverage report generated for (2/6), (3/6), (4/6), (5/6), (6/6) to /cms/coverage. 21497 / 34025 LOC (63.18%) covered.
..............................
.................................................................
Finished in 7 minutes 45 seconds (files took 30.78 seconds to load)
496 examples, 0 failures
Randomized with seed 23145
Coverage report generated for (1/6), (2/6), (3/6), (4/6), (5/6), (6/6) to /cms/coverage. 24538 / 29147 LOC (84.19%) covered.
2486 examples, 0 failures
Took 511 seconds (8:31)
Job succeeded
What is the current bug behavior?
The first avalible coverage gets selected
What is the expected correct behavior?
The full coverage should be selected
Relevant logs and/or screenshots
See output that can be used to recreate.
Possible fixes
#extract_coverage should start looking at the last line, moving up.
This should also improve speed since with 1000 lines of output the coverage will be more likely to be at the end