Integrating with build tools
It just takes a single line to execute our test cases. Then why would we want to integrate with build tools? Build tools support pre-requisites, so by integrating with such tools, we can ensure the tests are run before performing a critical task. An example would be to run all the tests before deploying the code to production.
Paver
Paver is a popular Python-based build tool. It is built around the concept of tasks. Tasks are a sequence of commands that perform a particular action, such as building the application or running unit tests. Tasks are coded in regular Python and placed in a file called pavement.py in the project root.
We want to create a task that will run our unit tests. The following is how we can do that in Paver:
import subprocess
from paver.easy import task, consume_args, options, needs
@task
@consume_args
def test():
args = []
if hasattr(options, "args"):
args = options.args
p = subprocess.Popen(["python", "-m", "unittest"]...