codecov-python icon indicating copy to clipboard operation
codecov-python copied to clipboard

Excluding lines with exclude_lines in .coveragerc does not work for me

Open ldorau opened this issue 7 years ago • 10 comments

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

ldorau avatar Aug 28 '17 14:08 ldorau

@sarahjelinek @marcinslusarz @GBuella

ldorau avatar Aug 28 '17 14:08 ldorau

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.

lingthio avatar Sep 14 '17 01:09 lingthio

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.

alejandrolujan avatar May 23 '18 19:05 alejandrolujan

Did anyone get this fixed? :(

Ademord avatar Jun 13 '18 08:06 Ademord

Any news w.r.t this issue? This is throwing off our coverage reports and creates noise for the team.

alejandrolujan avatar Aug 22 '18 13:08 alejandrolujan

everybody who complained about .coveragerc not being taken into account -- shouldn't you specify all your settings in codecov.yml?..

interDist avatar Mar 01 '20 05:03 interDist

everybody who complained about .coveragerc not being taken into account -- shouldn't you specify all your settings in codecov.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.

erwanp avatar Apr 06 '20 18:04 erwanp

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 ?

smarie avatar Mar 09 '21 14:03 smarie

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

smarie avatar Mar 09 '21 14:03 smarie

I guess that nobody looked at it and now we already migrated the config to pyproject.toml, which is likely fully ignored by codecov.

ssbarnea avatar Nov 26 '22 00:11 ssbarnea