CoverageTestRunner

The Python standard library unittest aids in implementing and running unit tests. The coverage.py module (not in the standard library) measures which parts of a program are executed. A proper unit test suite will execute all parts of a program. CoverageTestRunner uses coverage.py to run test suites implemented with unittest, and fails the tests if they do not test the entire program.

CoverageTestRunner makes some assumptions, the most important of which is that the test suite is written so that each module corresponds to a test module, and that test module should execute everything in the module.

Ideally, we would test each class and its corresponding test suite, but unfortunately coverage.py only allows module granularity. It also only measures at the statement level. This is, however, typically better than can be achieved without any measurement tools.