3

I am trying to run my pytest (bdd) test cases in virtualenv. I have created a requirements.txt (using pip freeze) file in the root folder as below.

apipkg==1.5 atomicwrites==1.3.0 attrs==19.1.0 behave==1.2.6 certifi==2019.6.16 chardet==3.0.4 chromedriver==2.24.1 contextlib2==0.6.0.post1 coverage==4.5.4 docker==4.2.0 execnet==1.7.1 extras==1.0.0 Faker==4.1.1 fixtures==3.0.0 fuzzywuzzy==0.17.0 glob2==0.7 html-testRunner==1.2 html2text==2020.1.16 HTMLParser==0.0.2 idna==2.8 imaplib2==2.45.0 importlib-metadata==0.23 Jinja2==2.9.5 lettuce==0.2.23 lettuce-webdriver==0.3.5 linecache2==1.0.0 Mako==1.1.0 MarkupSafe==1.1.1 mock==3.0.5 more-itertools==7.0.0 packaging==19.2 parse==1.11.1 parse-type==0.4.2 path==15.0.0 path.py==12.5.0 pbr==5.4.2 pi==0.1.2 pipenv==2018.11.26 pluggy==0.13.0 py==1.8.0 pyparsing==2.4.2 pyperclip==1.7.0 PyQt5==5.13.0 PyQt5-sip==4.19.18 PyQtWebEngine==5.13.0 pytest==5.1.2 pytest-bdd==3.2.1 pytest-docker-fixtures==1.3.6 pytest-fixture-config==1.7.0 pytest-forked==1.1.3 pytest-html==2.0.0 pytest-metadata==1.8.0 pytest-ordering==0.6 pytest-shutil==1.7.0 pytest-splinter==2.0.1 pytest-virtualenv==1.7.0 pytest-xdist==1.31.0 pytest-yield==1.0.0 python-dateutil==2.8.1 python-mimeparse==1.6.0 python-subunit==1.3.0 PyYAML==5.3.1 QScintilla==2.11.2 requests==2.22.0 responses==0.10.9 selenium==3.141.0 six==1.12.0 splinter==0.11.0 sure==1.4.11 termcolor==1.1.0 testtools==2.3.0 text-unidecode==1.3 traceback2==1.4.0 unittest2==1.1.0 urllib3==1.24.1 virtualenv==16.7.2 virtualenv-clone==0.5.3 wcwidth==0.1.7 websocket-client==0.57.0 zipp==0.6.0 

I have created the virtual env, activated the same and installed the dependencies using the below commands.

virtualenv test source test/bin/activate pip install -r requirements.txt 

However when I am trying to run the test cases, am getting the below errors.

Traceback (most recent call last): File "/test/bin/pytest", line 8, in <module> sys.exit(main()) File "/test/lib/python3.7/site-packages/_pytest/config/__init__.py", line 59, in main config = _prepareconfig(args, plugins) File "/test/lib/python3.7/site-packages/_pytest/config/__init__.py", line 209, in _prepareconfig pluginmanager=pluginmanager, args=args File "/test/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "/test/lib/python3.7/site-packages/pluggy/manager.py", line 92, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "/test/lib/python3.7/site-packages/pluggy/manager.py", line 86, in <lambda> firstresult=hook.spec.opts.get("firstresult") if hook.spec else False, File "/test/lib/python3.7/site-packages/pluggy/callers.py", line 203, in _multicall gen.send(outcome) File "/test/lib/python3.7/site-packages/_pytest/helpconfig.py", line 89, in pytest_cmdline_parse config = outcome.get_result() File "/test/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result raise ex[1].with_traceback(ex[2]) File "/test/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall res = hook_impl.function(*args) File "/test/lib/python3.7/site-packages/_pytest/config/__init__.py", line 720, in pytest_cmdline_parse self.parse(args) File "/test/lib/python3.7/site-packages/_pytest/config/__init__.py", line 928, in parse self._preparse(args, addopts=addopts) File "/test/lib/python3.7/site-packages/_pytest/config/__init__.py", line 874, in _preparse self.pluginmanager.load_setuptools_entrypoints("pytest11") File "/test/lib/python3.7/site-packages/pluggy/manager.py", line 297, in load_setuptools_entrypoints plugin = ep.load() File "/test/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 92, in load module = import_module(match.group('module')) File "/test/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1006, in _gcd_import File "<frozen importlib._bootstrap>", line 983, in _find_and_load File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 677, in _load_unlocked File "/test/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 140, in exec_module exec(co, module.__dict__) File "/test/lib/python3.7/site-packages/pytest_yield/plugin.py", line 11, in <module> from _pytest.python import Generator ImportError: cannot import name 'Generator' from '_pytest.python' (/test/lib/python3.7/site-packages/_pytest/python.py) 

Can you help me understand what I am missing here? I tried with different versions of pytest, without luck. However the test cases are running fine in my local without any issues.

7
  • Try downloading pytest11 package Commented Jul 28, 2020 at 7:27
  • @NavanK., it would be of great help if you could explain how this can be done and how this helps Commented Jul 28, 2020 at 7:44
  • 2
    The pytest package that you have in your virtualenv might not be compatible . A finer version , pytest11 , can be downloaded in the same manner like other packages and it might help you. Commented Jul 28, 2020 at 8:00
  • @NavanK. thanks for the reply. I have tried with the latest stable version (5.4.3) of pytest without much luck. Could you suggest something else? Commented Jul 28, 2020 at 8:47
  • 1
    Seems like it's the pytest-yield plugin that's causing the trouble, try uninstalling that one. Commented Jul 28, 2020 at 9:56

1 Answer 1

2

There's an open issue with pytest-yield that prevents it to work with latest pytest version (5.1 and up): #6. This means that you have either to downgrade to an older version of pytest:

$ pip install "pytest<5" 

Or uninstall pytest-yield until the above issue is resolved:

$ pip uninstall -y pytest-yield 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.