From 7ca02fa66c74edb1250dc35b74a250a0cc1cb934 Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Tue, 5 May 2026 19:27:55 +0200 Subject: [PATCH] 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 --- .github/workflows/ci.yml | 12 ++++++------ pyproject.toml | 13 +++++++++++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0234c28b5..db42fdd06 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/pyproject.toml b/pyproject.toml index f940a71ad..55cdec1a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 = [