[Tutor] unittest.makeSuite question
dyoo at hkn.eecs.berkeley.edu
Fri Dec 3 10:05:26 CET 2004
On Thu, 2 Dec 2004, Kent Johnson wrote:
> makeSuite() creates a TestSuite object that consolidates all the test
> methods of the class named by the first argument. Test methods are
> identified by having names starting with the second argument.
The unit testing framework is closely related to a similar system written
in Java called "JUnit", and the JUnit folks have written a nice tutorial
on the concepts behind their framework:
I highly recommend the article... even if the programming language syntax
seems a bit stuffy. *grin*
The authors do a good job to explain the core ideas behind unit testing.
One is that a "suite" is a collection of tests. With a suite, we can glue
a bunch of tests together.
Being able to aggregate tests doesn't sound too sexy, but it's actually
very powerful. As a concrete example, we can write a module that
dynamically aggregates all unit tests in a directory into a single suite:
"""test_all.py: calls all the 'test_*' modules in the current
Danny Yoo (dyoo at hkn.eecs.berkeley.edu)
from glob import glob
from unittest import defaultTestLoader
s = unittest.TestSuite()
for moduleName in glob("test_*.py"):
if moduleName == 'test_all.py': continue
testModule = __import__(moduleName[:-3])
if __name__ == '__main__':
Here, we search for all the other test classes in our relative vicinity,
and start adding them to our test suite. We then run them en-masse. And
now we have a "regression test" that exercises all the test classes in a
Hope this helps!
More information about the Tutor