Redirecting unittest output to a Text widget
Peter Otten
__peter__ at web.de
Wed May 10 04:02:23 EDT 2006
MrBlueSky wrote:
> Morning! I'm writing my first Python program, so please have patience!
>
> I'd like to redirect the output from my application's unit tests
> ("import unittest") to a Tkinter Text object. I found the magic to
> redirect stdout and stderr:
> sys.stdout = myTextWindow
> sys.stderr = myTextWindow
> where myTextWindow inherits from Text and implements write() and
> writelines().
>
> But the output from my UT still appears in the command window, not the
> Text box. My own "print" statements *do* appear in the Text box.
>
> Can anyone suggest a way forward here?
Provide your file-like object to an explicitly instantiated TextTestRunner:
tr = unittest.TextTestRunner(stream=myTextWindow, verbosity=2)
unittest.main(testRunner=tr)
If you want to accept a verbosity option from the commandline you have to
subclass unittest.TestProgram and override its runTests() method,
unfortunately.
Peter
More information about the Python-list
mailing list