On 2013-10-31 22:12, Göktuğ Kayaalp wrote: > My usual practise is to have two entry points to the program as > executable scripts.
When I create stand-alone command-line scripts that take arguments, usually they're akin to version-control tools, so I have the form scriptname.py [--global-opts] <command> [--command-opts] [args] so I just make one of my <command>s allow for "test". That way, I can execute my tests as easily as my program. If I've added config parsing and script behavior depends on them, I might even create a test harness that does something like #!/bin/sh for f in one.ini two.ini three.ini do scriptname.py --config="$f" test done That way, if some of my tests take a long time to run, I can even make sub-commands to test a subset of the functionality to speed it up: scriptname.py test web-ui scriptname.py test database ... -tkc -- https://mail.python.org/mailman/listinfo/python-list