You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/CONTRIBUTING.md
+27Lines changed: 27 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -51,6 +51,33 @@ We are running [mdformat](https://github.com/executablebooks/mdformat) for forma
51
51
$ mdformat . --number
52
52
```
53
53
54
+
### Test Coverage - Line and Branch
55
+
56
+
We are using [Simplecov](https://github.com/colszowka/simplecov) to track test coverage.
57
+
58
+
It is included and reported when you run `bundle exec rake` or `bundle exec rspec`.
59
+
60
+
To view the coverage report, open the `coverage/index.html` file in your browser.
61
+
62
+
E.g. on macOS:
63
+
```console
64
+
$ open coverage/index.html
65
+
```
66
+
If you have unreachable lines, you can add `# :nocov` around those lines. The code itself or a comment should explain why the line is unreachable.
67
+
68
+
Example:
69
+
```ruby
70
+
# :nocov:
71
+
raiseArgumentError("Unsupported style :#{style}")
72
+
# :nocov:
73
+
```
74
+
75
+
This can happen for a few reasons, including:
76
+
1. When you handle config with a case statement and there is no else block
77
+
2. When matching with a node pattern even when you handle all cases: all other node types will be excluded before reaching your handler, because the node pattern will not match them.
78
+
79
+
You will need full line and branch coverage to merge. This helps detect edge cases and prevent errors.
80
+
54
81
## Creating new cops
55
82
56
83
- Document examples of good and bad code in your cop.
0 commit comments