unittest and automatically firing off tests

Tom Plunket tomas at fancy.org
Sat Jun 21 14:27:31 EDT 2003


John J. Lee wrote:

> > 1) Why in the name of all that is holy does unittest.main() throw
> >    regardless of tests passing?
> 
> I guess you mean 'raise', not 'throw'.  Does it?  I don't think it
> does.

Yes, I mean raise, and yes, it does.  Have you tried executing it
before trying to give advice?

> > 2) Why can't I readily pass a list of tests to unittest.main()? 
> >    (I mean, besides the fact that it's not implemented; was this
> >    a concious ommision?)
> 
> PyUnit works in terms of TestSuites.  Read the docs.

Yes I know.  Unfortunately, those of us who have read the docs
and read the code understand that unittest.main() takes a module
name or a module, and not a TestSuite.

> For one kludge to run tests from several test scripts, see test.py in
> 
> http://wwwsearch.sourceforge.net/ClientCookie/src/ClientCookie-0.4.2a.tar.gz
> 
> Doubtless I could have done it better if I'd used all of PyUnit's
> features.

Yeah, that's a pretty miserable hack.  From discussions
elsewhere, sucking in all of the tests in that way is pretty much
not nice.  ;)

> > 3) I feel like I should automatically batch up tests and fire
> >    them off to unittest.run() or something similar.  Is this as
> >    straight-forward and easy, and could I batch them all into one
> >    mega-suite?  Are there any reasons why I wouldn't want to do
> >    that?
> 
> I've always found
> 
> import unittest
> unittest.main()
> 
> to work fine for most things -- it builds test suites automatically if
> you use standard naming conventions, and has useful command line
> arguments, so you can run a particular TestCase or a particular test
> method on a TestCase from the command line.

Ok, but remember that that only works if all of your tests are in
the global namespace.  I suppose that can be, but that's not
really what I'm looking for either.


> If that's not enough, I know it's hard, but you'll just have to admit
> that you need to read the docs ;-)

Thanks, maybe you should yourself before offering this advice.  I
have found that the docs that are available are seriously
incomplete so I ended up actually reading the code.


-tom!




More information about the Python-list mailing list