Ensure COV_CORE_SRC is an absolute path before exporting to the environment · Issue #465 · pytest-dev/pytest-cov (original) (raw)
Summary
When COV_CORE_SRC is a relative directory and a subprocess first changes its working directory
before invoking Python then coverage won't associate the
Expected vs actual result
Get proper coverage reporting, but coverage is not reported properly.
Reproducer
- specifiy the test directory with a relative path, i.e.
bin/py.test src
- Create wrap a subprocess call in a shell script that first changes its work directory before calling
bin/python src/something.py
Versions
Output of relevant packages pip list
, python --version
, pytest --version
etc.
Python 3.8.5
pytest 6.1.2
pytest-asyncio==0.14.0
pytest-cache==1.0
pytest-cov==2.11.1
pytest-flake8==1.0.6
pytest-timeout==1.4.2
Config
Include your tox.ini
, pytest.ini
, .coveragerc
, setup.cfg
or any relevant configuration.
[pytest]
addopts = --timeout=30 --tb=native --cov=src --cov-report=html src -r w
markers = slow: This is a non-unit test and thus is not run by default. Use ``-m slow`` to run these, or ``-m 1`` to run all tests.
log_level = NOTSET
filterwarnings =
ignore::DeprecationWarning:telnetlib3.*:
Code
See https://github.com/flyingcircusio/backy/blob/master/src/backy/tests/test_backy.py#L99
I'm currently working around this by explicitly making COV_CORE_SRC absolute before calling the subprocess. I guess this could/should be done in general, too.
os.environ['COV_CORE_SOURCE'] = os.path.abspath(
os.environ['COV_CORE_SOURCE'])