chore(ci): Collect coverage from parallel test workers

Configure coverage.py for multiprocessing so Django's parallel test
workers are included in the coverage data.

Move coverage source and report settings into pyproject.toml,
and combine per-process coverage data before generating the report.

Fixes #22118
This commit is contained in:
Martin Hauser 2026-05-05 19:27:55 +02:00 committed by Jeremy Stretch
parent 30f9d3ed60
commit 4407505f87
2 changed files with 19 additions and 6 deletions

View File

@ -122,12 +122,12 @@ jobs:
- name: Run tests with coverage
if: ${{ matrix.coverage }}
run: >-
coverage run --source="netbox/"
netbox/manage.py test netbox/ --parallel
run: coverage run netbox/manage.py test netbox/ --parallel
- name: Combine coverage data
if: ${{ matrix.coverage }}
run: coverage combine
- name: Show coverage report
if: ${{ matrix.coverage }}
run: >-
coverage report --skip-covered
--omit '*/migrations/*,*/tests/*'
run: coverage report

View File

@ -26,6 +26,19 @@ Documentation = "https://netboxlabs.com/docs/netbox/"
Source = "https://github.com/netbox-community/netbox"
Issues = "https://github.com/netbox-community/netbox/issues"
[tool.coverage.run]
source = ["netbox/"]
concurrency = ["multiprocessing"]
parallel = true
sigterm = true
[tool.coverage.report]
skip_covered = true
omit = [
"*/migrations/*",
"*/tests/*",
]
[tool.pyright]
include = ["netbox"]
exclude = [