============= test session starts ===========
platform linux -- Python 3.6.6, pytest-4.0.2, py-1.7.0, pluggy-0.8.0 --
plugins: monkeytype-1.0.1, cov-2.6.0
Tests work if I pin pytest to this version. Updating to 4.1.0 breaks with this error:
platform linux -- Python 3.6.6, pytest-4.1.0, py-1.7.0, pluggy-0.8.0 --
plugins: monkeytype-1.0.1, cov-2.6.0
...
self = <pytest_cov.plugin.CovPlugin object at 0x7f13154272b0>, item = <Function test_part_compilation[PP]>
@compat.hookwrapper
def pytest_runtest_call(self, item):
> if (item.get_marker('no_cover')
or 'no_cover' in getattr(item, 'fixturenames', ())):
E AttributeError: 'Function' object has no attribute 'get_marker'
/home/mbarkhau/miniconda3/envs/pycalver_py36/lib/python3.6/site-packages/pytest_cov/plugin.py:289: AttributeError
I can reproduce the error and provide more information in case it isn't immediately clear what the issue is.
Duplicate of https://github.com/pytest-dev/pytest-cov/issues/252.
Hah! Literally the same title. Literally! Sorry about that.
At least in another repo.. ;)
Hi, I'm running into this issue with pytest version 4.3.0 (Python version 3.7.0). Please advise!
Is there a specific version that is considered stable?
UPDATE: I was able to bypass the error by reverting to pytest 3.x:
pip install pytest==3.10.1
NOTE: I'm using anaconda.
@s2t2 that function no longer exists in pytest 4, you can use .get_closest_marker instead.
Thanks @nicoddemus - I wasn't trying to use that function, nor was I attempting to invoke it, but rather just trying to run a simple test and getting errors.
Just a simple invocation of pytest using the example function and test provided in the pytest documentation. For some reason I saw the error in question.
Can you point to the docs you saw? We might have something outdated.
@s2t2
It might also have been some plugin you were using.
Indeed:
pytest_cov.plugin.CovPlugin
cov-2.6.1 should fix this.
Was originally following installation instructions here: https://docs.pytest.org/en/latest/getting-started.html
I think it might be an anaconda thing. Here is some more info: https://github.com/s2t2/testing-123-py/issues/2
@s2t2
In https://github.com/s2t2/testing-123-py/issues/2 it is triggered by another plugin..
if invoke pytest, the name of func you defined can't be with prefix "test".
rename function get_marker to get_closest_marker in /usr/local/lib/python3.6/site-packages/pytest_cov/plugin.py
solved for me
@mirhmousavi that solution is a last stop measure - more recent versions of pytest-cov already have this done correctly - updating is preferred to editing random installed files
@RonnyPfannschmidt I had installed pytest-cov from a local repo and it installed v2.6.0
I upgraded and everything's OK
Thanks
Thanks for the follow up and happy programming
I'm using pytest-cov 2.8.1 and still get the error.
Edit:
Updating pytest-remotedata==0.3.0 to pytest-remotedata==0.3.2 solved the problem for me. Anaconda dist on Windows 10 but I updated using pip, not conda
Thanks @arvindpdmn for coming back to post the solution. 馃憤
Most helpful comment
UPDATE: I was able to bypass the error by reverting to pytest 3.x:
NOTE: I'm using anaconda.