http://www.perlmonks.org?node_id=1000793


in reply to Bailing out when testing

See the docs for prove.

There is no documented option to stop on the first faliure, so not directly.

A couple of suggestions:

Also how long do your tests take to run, and how many tests are your putting in each .t file? I think you might be doing stuff wrong if each .t file takes more than a few seconds to run. Perhaps you need to break up your tests into many smaller test files, and simplfy what they do to remove longer running operations.

When I develop tests scripts, I usualy try to limit the number of tests to arround 100 per .t file, so that each individual test file runs quickly. If there are tests that take a significant lenght of time (eg: due to network or database access), I use an environment varable or command line switch to skip them untill all the other tests are working.

You can also speed up testing via prove by running several tests in parallel. On my (4 core) machine, I usualy run something like:

find t -name *.t | xargs prove -j9 -s

find will find all the test file in the test subtree of my source tree and pass them to prove, which will run them in random order, with up to 9 tests running at once. Running multiple tests concurrently is also a good way of finding and removing unexpected dependencies between tests.