开发者

Unit-testing extensions for an 'external' program with pyunit

I'm struggling to know where to start with unittest, having read the dive-into-python tutorial and looked at http://pyunit.sourceforge.net/.

I've got a piece of analysis software (call it 'prog.exe') which uses python for its input decks. I've started writing a python module which I'm going to import from that input deck to provide some useful functionality. So, running one of these analyses will go like this:

prog.exe inputdeck.py

where inputdeck.py contains:

from mymodule import mystuff

So how do I set up and run tests on mymodule? Should the above be in a system call in a setUp method of the test, or what?


Ok - solution:

Don't use unittest.main() as that's the command line tool. Instead call the appropriate unittest methods directly as follows:

From the command line run:

prog.exe mytests.py

where myt开发者_StackOverflow中文版ests.py contains:

import unittest
# ... code to run the analysis which we'll use for the tests ...
# ... test definitions ...
suite = unittest.TestLoader().loadTestsFromTestCase(test_cases)
unittest.TextTestRunner().run(suite)

See example at http://docs.python.org/release/2.6.7/library/unittest.html#unittest.TextTestRunner


Pyunit is a little bit outdated (2001), it is now completely included in python core distribution (http://docs.python.org/library/unittest.html). You should start read this documentation, especially the basic example part.

To test your module you'll have to create a file, let's call it mymodule_test.py and put in it something like this :

import unittest
from mymodule import mystuff

class MyTestCase(unittest.TestCase):
   def test_01a(self):
      """ test mystuff"""
      self.failUnless(mystuff.do_the_right_stuff())

if __name__ == '__main__':
    unittest.main()

and run it with python mymodule_test.py

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜