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.
- 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'
- run coverage for all modules
$
coverage run --source=./test -m unittest discover -s <directory>/
- 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>