Improve spec coverage for RuboCop rules
Problem
After enabling simplecov in "fast specs" and running specs for RuboCop rules with code coverage enabled we are seeing that some
SIMPLECOV=1 bin/rspec -f p $(find spec/rubocop -name "*_spec.rb")
The list
MR | File | % covered | Lines |
---|---|---|---|
!97497 (merged) | rubocop/cop/gitlab/avoid_feature_get.rb |
0.00 % | 27 |
!97493 (merged) | rubocop/cop/gitlab/keys_first_and_values_first.rb |
0.00 % | 57 |
rubocop/cop/avoid_route_redirect_leading_slash.rb |
80.95 % | 52 | |
rubocop/cop/gitlab/mark_used_feature_flags.rb |
88.72 % | 282 | |
rubocop/cop/performance/ar_count_each.rb |
90.00 % | 45 | |
rubocop/cop/performance/ar_exists_and_present_blank.rb |
92.31 % | 57 | |
rubocop/cop/migration/update_column_in_batches.rb |
95.45 % | 45 | |
rubocop/cop/gitlab/finder_with_find_by.rb |
95.83 % | 54 | |
rubocop/cop/migration/add_concurrent_foreign_key.rb |
95.83 % | 53 | |
!143663 (merged) | rubocop/cop/migration/add_limit_to_text_columns.rb |
97.18 % | 168 |
rubocop/cop/gitlab/feature_available_usage.rb |
98.04 % | 99 |
Screenshot
Line coverage for rubocop/*
|
---|
![]() |
Proposed solution
Bring test coverage to 100% for each for the
Implementation Guide
- Pick a
👮 rule from the table above☝ . - Create a well-named branch
355012-rubocop-improve-spec-coverage-<Cop/Name>
.- Hint: Prefixing a branch name with an issue IID (
355012
) will add required labels and references to this issue in the new merge request.
- Hint: Prefixing a branch name with an issue IID (
- Inspect resulting line coverage in your browser via
file:///path-to-your-gdk/coverage/index.html#_Tooling
- You will need to Create coverage report locally via
SIMPLECOV=1 bin/rspec <rubocop spec>
- You will need to Create coverage report locally via
- Write specs for lines which aren't covered by a spec.
- Create a merge request and link the MR in the table above replacing
<!-- Link MR -->
with!<MR-IID>
. 🎉
Edited by Peter Leitzen