From 4407505f870126c881d9a20fe4288fcfeeab4f27 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 = [