Coverage.py Regex Pragmas
9 months ago
- #Python
- #Regex
- #Code Coverage
- Coverage.py uses regexes to define pragma syntax for excluding code from measurement.
- Regex-based exclusions allow for pragma-less exclusions, like excluding all `__repr__` methods without individual comments.
- Third-party plugins like `covdefaults` and `coverage-conditional-plugin` leverage regexes for custom exclusions and platform-specific syntaxes.
- Multi-line regex patterns were introduced, enabling more powerful exclusions like excluding entire files or code between specific lines.
- Example regex patterns include excluding entire files with `# pragma: exclude file` and code blocks between `# no cover: start` and `# no cover: stop`.
- Regexes have limitations, such as difficulty handling string literals with pragma text or complex cases like empty placeholder methods.
- Despite limitations, regexes offer a flexible and powerful balance for real-world code exclusions.