coveragepy
coveragepy copied to clipboard
Using `--include` to also report on un-executed files or filter out files from `--source`
Is your feature request related to a problem? Please describe.
Using --include to also report on un-executed files. Here's a use case:
foo.py:
def foo():
return "bar"
test.py:
from foo import foo
def test_foo():
assert foo() == "bar"
if __name__ == "__main__":
test_foo()
untested.py:
def not_tested_nor_imported():
return "untested"
Running coverage run test.py && coverage report results in:
Name Stmts Miss Cover
-----------------------------
foo.py 2 0 100%
test.py 5 0 100%
-----------------------------
TOTAL 7 0 100%
Running coverage run --source=. test.py && coverage report results in:
Name Stmts Miss Cover
---------------------------------
foo.py 2 0 100%
test.py 5 0 100%
untested.py 2 2 0%
---------------------------------
TOTAL 9 2 78%
So far so good! ✅ We can force the untested files to be in the report as per the docs:
Specifying the source option also enables coverage.py to report on un-executed files, since it can search the source tree for files that haven’t been measured at all.
However, using --include to force specific files coverage run --include="foo.py,untested.py" test.py && coverage report still omits the untested.py file.
Name Stmts Miss Cover
----------------------------
foo.py 2 0 100%
----------------------------
TOTAL 2 0 100%
Describe the solution you'd like
It'd be great if we can use --include to also get coverage reports on specific files.
Describe alternatives you've considered
Perhaps we can use --include to filter out the files in --source, as the current behavior currently ignores --include:
--include is ignored because --source is set (include-ignored)
One workaround is to use --omit to exclude some files from --source which can give you files for --include. However, certain cases makes this hard (e.g. large code base being tested but you only want to --include a couple of files).