Initialy forked from pytest-reporter Using github-push-action
This GitHub action runs python tests using pytest and creates a comment for PR with a coverage table.
It supports projects with the most popular python package managers (pip, poetry, pipenv)
Optionally can commit the coverage badge into the branch.
-
requirements-file- requirements filepath for project
- if left empty will default to
requirements.txt - necessary if you use
pippython package manager
-
pytest-root-dir- root directory to recursively search for .py files
-
pytest-tests-dir- directory with pytest tests
- if left empty will identify test(s) dir by default
-
cov-omit-list- list of directories and/or files to ignore
-
cov-threshold-single- fail if any single file coverage is less than threshold
-
cov-threshold-total- fail if the total coverage is less than threshold
-
async-tests- Add support for async tests
-
poetry-version- Poetry version to be used. The latest version is used by default
-
poetry-groups- Poetry group names with the dependencies for the tests
-
package-extras- Package extras with the dependencies for the tests, or dev-requirement file if pip
-
output- Output path to write the coverage badge
-
overwrite- Overwrite an existing coverage badge.
-
working_branch- Working_branch
-
commit_badge- Boolean to either make a commit on the coverage badge or not
name: pycoverage workflow
on: [pull_request]
jobs:
tests:
runs-on: ubuntu-latest
name: Unit tests
steps:
- uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }} # be sure to add this ref on your checkout
- uses: actions/setup-python@v2
with:
python-version: '3.9.6' # Define your project python version
- id: run-tests
uses: JotaFan/pycoverage@v1.0.0
with:
cov-omit-list: tests/*
cov-threshold-single: 85
cov-threshold-total: 90
async-tests: true
poetry-version: 1.4.2
package-extras: dev,tests
github_token: ${{ secrets.github_token }}
working_branch: ${{ steps.extract_branch.outputs.branch }}Add the badge to your README.md
<!-- README.md -->
+ [](https://github.com/<you>/<repo>/actions)
Replace the <you> and <repo> above, like:
If you feel generous and want to show some extra appreciation:
Support this project with a ⭐
