unittest: how to specify which suites to run with unittest.main()?

Fernando Perez fperez528 at yahoo.com
Tue Feb 11 19:21:47 EST 2003


Mark McEahern wrote:

>> 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.
> 
> 1.  Don't name any method of testBase test*--or am I missing something?

Well, that doesn't work because I want to run those methods, but only from 
the test1/test2 instances.  These guys override the setUp() method to 
configure the tests with different parameters, but otherwise need to run 
exactly the same tests.  So having them inherit all the test* methods from 
testBase actually makes perfect sense: they inherit all the tests, 
configure the setUp() call differently, and go on happily.  So that 
solution doesn't work.


> 2.  Put testBase in a separate module and import it.

I thought of doing this, but it seems unnecessarily ugly. I like to have a 
single test.py file in my library code, and it would seem to me that there 
should be a way to tell unittest.main() exactly which test suite to run.

Thanks for the input, though.  I'm very new at this unittest business, so 
all ideas are appreciated.

Regards,

f.




More information about the Python-list mailing list