A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pytest-dev/pytest-cov/issues/110 below:

--cov fails with pytest-xdist · Issue #110 · pytest-dev/pytest-cov · GitHub

Trying to specify --cov with no source directories specified fails when using pytest-xdist.

E.g. py.test --cov -n 2 (with a .coveragerc file specifying sources) will fail, while py.test --cov will succeed. Also, py.test --cov=. -n 2 will succeed.

I'm using pytest 2.9.0, pytest-cov 2.2.1, and pytest-xdist 1.14. I've run on both Mac OS and Linux.

The error message is:

  1 INTERNALERROR> Traceback (most recent call last):
  2 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/_pytest/main.py", line 92, in wrap_session
  3 INTERNALERROR>     config.hook.pytest_sessionstart(session=session)
  4 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 724, in __call__
  5 INTERNALERROR>     return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  6 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
  7 INTERNALERROR>     return self._inner_hookexec(hook, methods, kwargs)
  8 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
  9 INTERNALERROR>     _MultiCall(methods, kwargs, hook.spec_opts).execute()
 10 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/_pytest/vendored_packages/pluggy.py", line 596, in execute
 11 INTERNALERROR>     res = hook_impl.function(*args)
 12 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/pytest_cov/plugin.py", line 136, in pytest_sessionstart
 13 INTERNALERROR>     self.start(engine.DistSlave, session.config, nodeid)
 14 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/pytest_cov/plugin.py", line 123, in start
 15 INTERNALERROR>     self.cov_controller.start()
 16 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/pytest_cov/engine.py", line 245, in start
 17 INTERNALERROR>     self.cov.erase()
 18 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/coverage/control.py", line 709, in erase
 19 INTERNALERROR>     self._init()
 20 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/site-packages/coverage/control.py", line 231, in _init
 21 INTERNALERROR>     if os.path.exists(src):
 22 INTERNALERROR>   File "~/Dev/.virtualenvs/workspace/lib/python2.7/genericpath.py", line 26, in exists
 23 INTERNALERROR>     os.stat(path)
 24 INTERNALERROR> TypeError: coercing to Unicode: need string or buffer, bool found
 25 [gw0] node down: Not properly terminated

I've traced this to the following line succeeding for the centralized and master case:

    if ns.cov_source == [True]:
        ns.cov_source = None

(https://github.com/pytest-dev/pytest-cov/blob/master/src/pytest_cov/plugin.py#L48)

But not for slaves which skip the pytest_load_initial_conftests hook and only run the pytest_configure hook: https://github.com/pytest-dev/pytest-cov/blob/master/src/pytest_cov/plugin.py#L61.

One simple fix would be to move the check for [True] to CovPlugin.start() before initializing cov_controller, but I wasn't sure if you were trying to keep the argument parsing only during initialization.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4