How to run coverage.py on a directory?

Here is a complete example with commands from the same PWD for all phases in one place. With a worked up example, I am also including the testing and the report part for before and after coverage is run. I ran the following steps and it worked all fine on osx/mojave.

  1. Discover and run all tests in the test directory

$ python -m unittest discover <directory_name>

Or Discover and run all tests in "directory" with tests having file name pattern *_test.py

$ python -m unittest discover -s <directory> -p '*_test.py'

  1. run coverage for all modules

$ coverage run --source=./test -m unittest discover -s <directory>/

  1. get the coverage report from the same directory - no need to cd.

$ coverage report -m

Notice in above examples that the test directory doesn't have to be named "test" and same goes for the test modules.


You can achieve that using --source. For example: coverage run --source=tests/ <run_tests>