https://github.com/gtkacz/coverage-pre-commit
A pre-commit hook to run coverage on your code and enforce a minimum coverage threshold.
https://github.com/gtkacz/coverage-pre-commit
coverage pre-commit python test testing testing-tools
Last synced: 25 days ago
JSON representation
A pre-commit hook to run coverage on your code and enforce a minimum coverage threshold.
- Host: GitHub
- URL: https://github.com/gtkacz/coverage-pre-commit
- Owner: gtkacz
- License: mit
- Created: 2025-03-16T03:15:14.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-03-31T20:33:17.000Z (about 1 month ago)
- Last Synced: 2025-03-31T21:34:00.088Z (about 1 month ago)
- Topics: coverage, pre-commit, python, test, testing, testing-tools
- Language: Python
- Homepage:
- Size: 65.4 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# coverage-pre-commit
A pre-commit hook to run coverage on your code and enforce a minimum coverage threshold.
## Features
* **Multiple Test Providers**: Supports both unittest and pytest, with the ability to add custom providers
* **Flexible Configuration**: Customize coverage thresholds, test command arguments, and more
* **Dependency Management**: Automatically checks and installs required dependencies
* **Pre-commit Integration**: Works seamlessly with pre-commit hooks## Usage
Add this to your `.pre-commit-config.yaml`:
```yaml
- repo: https://github.com/gtkacz/coverage-pre-commit
rev: v0.1.0 # Use the ref you want to point at
hooks:
- id: coverage-pre-commit
```### Arguments
```console
$ coverage_pre_commit --help
usage: coverage_pre_commit [-h] [--version] [--provider PROVIDER] [--args ARGS]
[--fail-under FAIL_UNDER]
[--extra-dependencies EXTRA_DEPENDENCIES]
[--command COMMAND]Run tests with coverage and verify coverage thresholds
options:
-h, --help show this help message and exit
--version Show version information
--provider PROVIDER Test provider
--args ARGS Additional arguments to pass to the test command
--fail-under FAIL_UNDER
Minimum coverage percentage to fail the build
--extra-dependencies EXTRA_DEPENDENCIES
Additional dependencies to install
--command COMMAND Custom command to run tests (required if provider is not supported)
```### Example Usage
#### With unittest
```yaml
- repo: https://github.com/gtkacz/coverage-pre-commit
rev: v0.1.0
hooks:
- id: coverage-pre-commit
args: [--fail-under=80]
```#### With pytest
```yaml
- repo: https://github.com/gtkacz/coverage-pre-commit
rev: v0.1.0
hooks:
- id: coverage-pre-commit
args: [--provider=pytest, --fail-under=80, --extra-dependencies=pytest-xdist]
```#### With custom command
```yaml
- repo: https://github.com/gtkacz/coverage-pre-commit
rev: v0.1.0
hooks:
- id: coverage-pre-commit
args: [--command="coverage run --branch manage.py test"]
```## Supported Providers
- **unittest**: Uses Python's built-in unittest framework with coverage
- **pytest**: Uses pytest with pytest-cov plugin## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request### Top contributors:
## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
Gabriel Mitelman Tkacz - [@gtkacz](https://github.com/gtkacz) - [email protected]
Project Link: [https://github.com/gtkacz/coverage-pre-commit](https://github.com/gtkacz/coverage-pre-commit)