Skip to content

Separate Nexus coverage from QMCPACK coverage with Nexus-only workflow #5897

@brockdyer03

Description

@brockdyer03

Current

A challenge I am not sure is surmountable in #5894 is the difficulties with parallel coverage gathering through pytest-cov. The primary problem is that pytest-cov grabs any .coverage* files and aggregates the results, so if you have 4 tests generating their own coverage reports then a test might accidentally "steal" the coverage report from another test, resulting in an error.

I genuinely am not sure if it is possible to even fix that because there doesn't seem to be a way to individually label the coverage reports for each test.

Proposal

I think the best way to fix this is to just create a separate Nexus-only workflow that reports coverage completely separately from the QMCPACK coverage.

I've made a branch on my fork of QMCPACK that is what I envision for a Nexus-only workflow that tests Python 3.10 and Python 3.14, accounts for Numpy 1.22.0 and 2.4.4, and tests on both ubuntu:latest and macos:latest. It would be relatively trivial to also collect coverage there, and since the Nexus tests are quite rapid it would not add any significant runtime to our current workflows.

CodeCov already supplies tools for submitting separate coverage reports for different languages, detailed here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GitHub ActionsAll things GitHub ActionsciAll things Continuous Integrationnexustesting

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions