How do you do unittest?

Raymond Hettinger vze4rx4y at verizon.net
Sat Aug 2 01:53:00 CEST 2003


"Will Stuyvesant" <hwlgw at hotmail.com> wrote in message
news:cb035744.0308010633.3fd4e805 at posting.google.com...
> I have a unittest testfile like this:
>
> ----------------------- test_mod.py ---------------------
> import sys
> sys.path.append('..')
> import unittest
> import mod
>
> class Test_rmlutils(unittest.TestCase):
>
>     def testNormalCase(self):
>         self.assertEqual(....
>
>
> if __name__ == '__main__':
>     unittest.main()
> ---------------------------------------------------------
>
> It is exactly the same as example 17-2 in "Python in a
> Nutshell" (PiaN), except for the first two lines.  To
> quote PiaN:
> "...name the test module...with a prefix such as 'test_',
> and put it in a subdirectory named 'test' of the directory
> where you keep the sources."
>
> PiaN did not mention the ugly sys.path.append('..') trick
> I had to use when following its advice.  I need to use it
> because mod.py is in the directory above the 'test'
> directory.

You can avoid that sort of mambo jambo by avoiding
unittest.main() and running the tests directly.  I added
a simple example to the Py2.3 docs:

   http://www.python.org/doc/current/lib/minimal-example.html


Raymond Hettinger
>
> To run a test from the source directory I have to change
> to the 'test' directory and run test_mod.py there from the
> commandline.  Okay, I can do that from a batchfile:
>
> ----------------------- test.bat ------------------------
> cd test
> test_mod.py
> cd ..
> ---------------------------------------------------------
>
> But: I would like to get rid of the need for
> sys.append('..') and I don't see a nice way to do that, do
> you?  Maybe something from a Python script instead of a
> DOS script...I am thinking about importing sys there and
> then doing some advanced unittest function like
> 'runsuite(blah, foo)' but I am still reading the unittest
> docs and there must be somebody who did this before?
>
> I guess the author of PiaN does not use a 'test' subdirectory
> himself, as it is now the example 17-2 does only work in the
> source directory.






More information about the Python-list mailing list