I'm setting up my nosetests environment but can't seem to get the timeout to work properly. I would like to have an x
second (say 2) timeout on each test discovered by nose.
I tried the following:
nosetests --processes=-1 --process-timeout=2
This works just fine but I noticed the following:
Does anyone know how I can get such a timeout to work? I would prefer it to work without parallel testing but this would not be an issue as long as I get the feedback that a test has timed out.
I do not know if this will make your life easier, but there is a similar functionality in nose.tools
that will fail on timeout, and you do not have to have parallel testing for it:
from nose.tools import timed
@timed(2)
def test_a():
sleep(3)
You can probably auto decorate all your tests in a module using a script/plugin, if manually adding an attribute is an issue, but I personally prefer clarity over magic.
By looking through the Lib/site-packages/nose/plugins/multiprocess.py
source it looks like process-timeout
option that you are using is somewhat specific to managing "hanging" subprocesses that may be preventing test from completion.