Author jcd
Recipients jcd
Date 2010-03-05.17:32:21
SpamBayes Score 3.31719e-09
Marked as misclassified No
Message-id <1267810344.12.0.537474527773.issue8074@psf.upfronthosting.co.za>
In-reply-to
Content
When a long suite of tests is running, it would be nice to be able to exit out early to see the results of the tests that have run so far.  

I would like to see a couple of features included in `unittest` to this effect that have recently been implemented in django's test runner.  The first exits gracefully on `^C`, the second allows the user to specify a `--failfast` option, which causes the test runner to exit after the first failure or error, rather than proceeding with the 

If you hit `^C`, rather than exit with a stack trace of whatever was happening at the time, `unittest` should complete the current test, and then exit with the results to that point.  A second `^C` would be treated as a normal `KeyboardInterrupt`, in case that last test were somehow running on too long.

{{{
  $ python test_module.py
..F.s.^C <Test run halted by Ctrl-C> x
======================================================================
FAIL: test_multiline_equal (__main__.MyTest)
Unicode objects return diffs on failure
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_test.py", line 39, in test_multiline_equal
    self.assertEqual(original, revised)
AssertionError: 
- Lorem ipsum dolor sit amet, 
?             ^
+ Lorem ipsum color sit amet, 
?             ^
              consectetur adipisicing elit, 
+             that's the way the cookie crumbles,
              sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

----------------------------------------------------------------------
Ran 7 tests in 12.010s

FAILED (failures=1, skipped=1, expected failures=1)
}}}

A `failfast` option could be specified as a keyword argument to `unittest.main()`, or `unittest.main()` could read it off the command line, according to the same mechanism used by, e.g., the `verbosity` option.
History
Date User Action Args
2010-03-05 17:32:24jcdsetrecipients: + jcd
2010-03-05 17:32:24jcdsetmessageid: <1267810344.12.0.537474527773.issue8074@psf.upfronthosting.co.za>
2010-03-05 17:32:22jcdlinkissue8074 messages
2010-03-05 17:32:21jcdcreate