codecov-python
codecov-python copied to clipboard
Excluding lines with exclude_lines in .coveragerc does not work for me
Excluding lines with exclude_lines in '.coveragerc' does not work for me: There is a part of the '.coveragerc' file attached below:
[report]
exclude_lines =
except FileNotFoundError
except CriticalError
except EndOfFile
except:
These lines are taken into account as not covered by CodeConv for example here: https://codecov.io/gh/ldorau/pmemfile/src/419f2bdde894a84d62e1c6b4d530c6bf0a1b8665/src/tools/antool/utils.py#L61
Details:
The whole source code is available here: https://github.com/ldorau/pmemfile/tree/CodeCov-bug
The last commit: 419f2bdde894a84d62e1c6b4d530c6bf0a1b8665 docker: add python3-coverage and upgrade pip
The python code: https://github.com/ldorau/pmemfile/tree/CodeCov-bug/src/tools/antool
The ".coveragerc" file: https://github.com/ldorau/pmemfile/blob/CodeCov-bug/tests/antool/.coveragerc
The Travis build for commit 419f2bdde894a84d62e1c6b4d530c6bf0a1b8665: https://travis-ci.org/ldorau/pmemfile/builds/269204603
The CodeCov report for commit 419f2bdde894a84d62e1c6b4d530c6bf0a1b8665: https://codecov.io/gh/ldorau/pmemfile/tree/419f2bdde894a84d62e1c6b4d530c6bf0a1b8665/src/tools/antool
Lines not excluded are located for example in the following files: https://codecov.io/gh/ldorau/pmemfile/src/419f2bdde894a84d62e1c6b4d530c6bf0a1b8665/src/tools/antool/utils.py https://codecov.io/gh/ldorau/pmemfile/src/419f2bdde894a84d62e1c6b4d530c6bf0a1b8665/src/tools/antool/antool.py
@sarahjelinek @marcinslusarz @GBuella
I'm running into the same issue.
Notice that exclude_lines
is in the [report]
section. I wonder if the .coverage data file contains the missing lines and that:
- our local coverage-reporter uses this data file MINUS any lines that match the
[report]:exclude_lines
entries. - codecov uses only this data file as-is (does not honor
exclude_lines
).
If so, codecov will need to:
- find the .coveragerc file (it can be placed anywhere and named anything)
- remove any
exclude_lines
matched lines from their reporting.
If developers can't tell CI about the rc file, and if the CI can't tell CodeCov about the rc file, CodeCov could demand that the file is named .coveragerc and resides in the root directory.
I'm having the same issue - declaring exclude_lines
in .coveragerc
or in setup.cfg
does not seem to have any effect on my Codecov reports, even though the configuration is reflected in my local coverage reports.
Did anyone get this fixed? :(
Any news w.r.t this issue? This is throwing off our coverage reports and creates noise for the team.
everybody who complained about .coveragerc
not being taken into account -- shouldn't you specify all your settings in codecov.yml
?..
everybody who complained about
.coveragerc
not being taken into account -- shouldn't you specify all your settings incodecov.yml
?..
In my project I didn't manage to include the exclude_lines
in the codecov.yml
but it worked by adding a .coveragerc
on the side.
Any progress on this issue ? I have the same problem: both .coveragerc
[report]
section and setup.cfg
[coverage:report]
configurations are ignored by codecov
.
@interDist :
everybody who complained about .coveragerc not being taken into account -- shouldn't you specify all your settings in codecov.yml?..
This option is not present in the codecov.yml reference : https://docs.codecov.io/docs/codecovyml-reference#coverage
@erwanp : from your project sources and coverage reports it seems that this is not actually working, no ?
My bad: it seems to work now. The secret seems to PUSH the .coveragerc file as it is not taken into account locally (the .coverage file and generated coverage.xml report do not contain anything about ignored lines, this is a post processing thing).
So in other words, the codecov platform seems to check the git files separately (not during report upload), and if a .coveragerc file is present, applies the exclude lines appropriately. Can anyone confirm ? What about using setup.cfg
instead of .coveragerc
, is this officially supported ?
EDIT: it seems that setup.cfg
configuration is also correctly taken into account. So the secret is really to push these files to github before executing codecov
I guess that nobody looked at it and now we already migrated the config to pyproject.toml, which is likely fully ignored by codecov.