Let's use py.test and codecoverage (with support for branching). It can be configured like this: https://github.com/Kentzo/async_app/blob/master/setup.py#L15-L27 https://github.com/Kentzo/async_app/blob/master/setup.py#L50 https://github.com/Kentzo/async_app/blob/master/setup.cfg#L25-L27