How can I limit the maximum running time for a unit test?

shuttle87 picture shuttle87 · Oct 22, 2013 · Viewed 13.5k times · Source

I am currently running some unit tests that might either take a long time before failing or run indefinitely. In a successful test run they will always complete within a certain amount of time.

Is it possible to create a pytest unit test that will fail if it does not complete within a certain amount of time?

Answer

Mrinal Shukla picture Mrinal Shukla · Oct 22, 2013

you can install the pytest-timeout plugin and then mark your test functions with a timeout in seconds.

@pytest.mark.timeout(300)
def test_foo():
   pass

Look at the plugin download and usage instructions at https://pypi.python.org/pypi/pytest-timeout