unittest: how to specify which suites to run with unittest.main()?
Fernando Perez
fperez528 at yahoo.com
Tue Feb 11 18:19:22 EST 2003
Hi all,
I have a unittest question for which my current solution looks very ugly. I
need to build some test classes based on a subclass of TestCase:
# pseudo-code follows:
class testBase(TestCase): pass
class test1(testBase): pass
class test2(testBase): pass
Now I want to build a test suite which uses all the test* methdods in test1
and test2, but NOT in testBase. testBase is meant to be used only to
provide common functionality to other test classes, not to be used by
itself.
Further, I want to have a way of using unittest.main() to call this test
suite.
I tried
mysuite = makeSuite(test1)
mysuite.addTests(makeSuite(test2))
but that doesn't work. Furthermore, main() seems to want to run _all_
subclasses of TestCase.
My solution was to make testBase a mix-in which doesn't inherit from
TestCase so that it 'flies under the radar' of main(), but I find that
rather kludgy:
class testBase(): pass
class test1(testBase,TestCase): pass
class test2(testBase,TestCase): pass
Are there any better solutions? I read the code for unittest.main() and I
guess I can just re-implement it myself by putting just what I want in, but
I'm sure what I'm trying to accomplish is routine enough that a standard
solution must exist.
Thanks in advance for any input.
Cheers,
f.
More information about the Python-list
mailing list