Describe the bug
In my project, I configured coverage.py using pyproject.toml to
- write all files into a
test-files folder (idk if that’s relevant)
- skip coverage for
if TYPE_CHECKING: blocks
The reported coverage reflects that (see table below), and when I run coverage xml, the test-files/coverage.xml file is also correct.
Name Stmts Miss Cover
------------------------------------------------------------------
src/fast_array_utils/__init__.py 4 0 100%
src/fast_array_utils/_patches.py 2 0 100%
src/fast_array_utils/conv/__init__.py 3 0 100%
src/fast_array_utils/conv/_asarray.py 25 3 88%
src/fast_array_utils/conv/scipy/__init__.py 3 0 100%
src/fast_array_utils/conv/scipy/_to_dense.py 12 0 100%
src/fast_array_utils/stats/__init__.py 3 0 100%
src/fast_array_utils/stats/_sum.py 33 0 100%
src/fast_array_utils/types.py 25 2 92%
------------------------------------------------------------------
TOTAL 110 5 95%
But when the codecov CLI runs coverage xml via its coveragepy plugin, the lines are not skipped and codecov reports a 82.87% coverage instead of the expected 95.45% (see codecov report for the linked run below)
See also Additional context below for a workaround I’m using
To Reproduce
- set coverage.py’s
report.exclude_also setting in a pyproject.toml to ignore some lines
- collect coverage in
.coverage file and run coverage xml
- run codecov CLI’s upload (which will re-generate the XML)
- compare the XML you created with the one codecov’s CLI created
Expected behavior
either
coverage xml run from the codecov CLI uses the same config as when I run it, or
- when the file passed via
--file already exists, have the codecov CLI skip running coverage xml
Regression
This probably worked using the old coverage PyPI package, but IDK.
Screenshots
NA
Product Area
coverage
Versions
- OS: linux
- Git Host: GitHub
- CI/CD: GitHub Actions
- Uploader: codecov-action@v5.3.1, codecov-cli@v10.1.0
Commit and CI link
scverse/fast-array-utils@13436951846
https://github.com/scverse/fast-array-utils/actions/runs/13436951846/job/37541444988
Additional context
I can manually work around this by generating the XML myself and then deleting the test-files/.coverage file, but this should be fixed on your side.
codecov/codecov-cli#648
Describe the bug
In my project, I configured coverage.py using
pyproject.tomltotest-filesfolder (idk if that’s relevant)if TYPE_CHECKING:blocksThe reported coverage reflects that (see table below), and when I run
coverage xml, thetest-files/coverage.xmlfile is also correct.But when the codecov CLI runs
coverage xmlvia its coveragepy plugin, the lines are not skipped and codecov reports a 82.87% coverage instead of the expected 95.45% (see codecov report for the linked run below)See also Additional context below for a workaround I’m using
To Reproduce
report.exclude_alsosetting in a pyproject.toml to ignore some lines.coveragefile and runcoverage xmlExpected behavior
either
coverage xmlrun from the codecov CLI uses the same config as when I run it, or--filealready exists, have the codecov CLI skip runningcoverage xmlRegression
This probably worked using the old
coveragePyPI package, but IDK.Screenshots
NA
Product Area
coverage
Versions
Commit and CI link
scverse/fast-array-utils@13436951846
https://github.com/scverse/fast-array-utils/actions/runs/13436951846/job/37541444988
Additional context
I can manually work around this by generating the XML myself and then deleting the
test-files/.coveragefile, but this should be fixed on your side.codecov/codecov-cli#648