-
-
Couldn't load subscription status.
- Fork 459
Description
Describe the bug
My intent is to trace all python files under project root, excepting a couple directories and python files in the top level.
This is close to what I want, but contains python files at the top level:
coverage run --source=. --omit="tests/*","tests_integ/*" -m pytestbut these will omit ALL python files (CoverageWarning: No data was collected. (no-data-collected)):
coverage run --source=. --omit="tests/*,tests_integ/*,*.py" -m pytest coverage run --source=. --omit="tests/*,tests_integ/*,./*.py" -m pytest coverage run --source=. --omit='tests/*,tests_integ/*,*.py' -m pytest To Reproduce
How can we reproduce the problem? Please be specific. Don't link to a failing CI job.
Minimal repro:
❯ tree -I "__*" . ├── bar │ └── bar.py ├── foo.py └── tests └── test_baz.py 2 directories, 3 files ❯ bat foo.py bar/bar.py tests/test_baz.py ───────┬──────────────────────────────────── │ File: foo.py <EMPTY> ───────┴──────────────────────────────────── ───────┬──────────────────────────────────── │ File: bar/bar.py <EMPTY> ───────┴──────────────────────────────────── ───────┬──────────────────────────────────── │ File: tests/test_baz.py ───────┼──────────────────────────────────── 1 │ def test_foo(): 2 │ assert True ───────┴──────────────────────────────────── Then compare coverage report after running the two different commands:
coverage run --source=. -m pytest # traces coverage for every file coverage run --source=. --omit="./*.py" -m pytest # no files tracedAnswer the questions below:
- What version of Python are you using?
3.7.6 - What version of coverage.py shows the problem? The output of
coverage debug sysis helpful.6.4.1 - What versions of what packages do you have installed? The output of
pip freezeis helpful. - What code shows the problem? Give us a specific commit of a specific repo that we can check out. If you've already worked around the problem, please provide a commit before that fix.
- What commands did you run?
Expected behavior
I expected either *.py or ./*.py to only match python files at the top level. In minimal repro above, that means ./foo.py should have been omitted from coverage trace, but ./bar/bar.py should not.
Additional context
I've also tried "omitting on read" via coverage report --omit, but that has the same problem.