nose-devs/nose — pull request #820 by vmarkovtsev (2014-06-19 14:47:55+00:00)
Title: Fix coverage plugin with multiprocess plugin

This properly fixes pull request #710 and similar issues like https://github.com/dvdotsenko/nose_gevent_multiprocess/issues/2
multiprocess plugin tries to configure coverage plugin in each worker process,
thus raising
```
Traceback (most recent call last):
File "/usr/lib/python3.4/multiprocessing/process.py", line 254, in _bootstrap
self.run()
File "/usr/lib/python3.4/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3/dist-packages/nose/plugins/multiprocess.py", line 652, in runner
keyboardCaught, shouldStop, loaderClass, resultClass, config)
File "/usr/lib/python3/dist-packages/nose/plugins/multiprocess.py", line 669, in __runner
config.plugins.begin()
File "/usr/lib/python3/dist-packages/nose/plugins/manager.py", line 99, in __call__
return self.call(*arg, **kw)
File "/usr/lib/python3/dist-packages/nose/plugins/manager.py", line 167, in simple
result = meth(*arg, **kw)
File "/usr/lib/python3/dist-packages/nose/plugins/cover.py", line 160, in begin
self.coverInstance.exclude('#pragma[: ]+[nN][oO] [cC][oO][vV][eE][rR]')
AttributeError: 'NoneType' object has no attribute 'exclude'
```
coverage plugin should be a no-op in worker processes, since Coverage.py
works with multiprocessing out of the box and the support for that was
added to nose in 2010: https://code.google.com/r/arveknudsen-cover-parallel/source/list