I have a problem similar to Tox 0% coverage, but I do have some coverage. My runtime code is being covered, but my test code is not. I have built an example app that reproduces the problem.
Name Stmts Miss Cover
------------------------------------------------------------------------------------
.tox/py38/lib/python3.8/site-packages/org/app/__init__.py 0 0 100%
.tox/py38/lib/python3.8/site-packages/org/app/app.py 2 0 100%
.tox/py38/lib/python3.8/site-packages/org/app/test/__init__.py 0 0 100%
.tox/py38/lib/python3.8/site-packages/org/app/test/test_it.py 5 5 0%
------------------------------------------------------------------------------------
TOTAL 7 5 29%
One hypothesis might be that unittest is only actually running src/org/app/test/test_it.py
, and never running .tox/py38/lib/python3.8/site-packages/org/app/test/test_it.py
. But the unittest command is coverage run --omit 'src/**' -m unittest discover '{envsitepackagesdir}/org/app'
, which I would expect to cause discovery to look for tests inside the site-packages directory. Here is the whole tox.ini:
[tox]
envlist = py38
[testenv]
deps = coverage
commands_pre = coverage erase
download = true
commands = coverage run --omit 'src/**' -m unittest discover '{envsitepackagesdir}/org/app'
commands_post = coverage report
[coverage:run]
source_pkgs = org.app
[coverage:paths]
source =
${TOX_ENV_DIR-src}/org/app
src/org/app
[coverage:report]
exclude_lines =
def __repr__
if 0:
if TYPE_CHECKING:
if __name__ == .__main__.:
if self.debug:
if settings.DEBUG
pragma: no cover
raise AssertionError
raise NotImplementedError
How can I get coverage to report the test in site-packages as having been run, or get test discovery to actually run that test instead of the same test someplace else?