enable python coverage for subprocesses
Project Links
Meta
Author: Buck Evan
Classifiers
Programming Language
- Python :: 2.6
- Python :: 2.7
- Python :: 3.3
- Python :: 3.4
License
- OSI Approved :: MIT License
This package installs a pth file that enables the coveragepy process_startup feature in this python prefix/virtualenv in subsequent runs.
See: http://nedbatchelder.com/code/coverage/subprocess.html
Demo:
$ virtualenv tmpenv
$ . tmpenv/bin/activate
$ pip install coverage-enable-subprocess
$ touch .coveragerc
$ export COVERAGE_PROCESS_START=$PWD/.coveragerc
$ echo 'print("oh, hi!")' > ohhi.py
$ python ohhi.py
oh, hi!
$ coverage report
Name Stmts Miss Cover
-----------------------------------------------------
/etc/python2.6/sitecustomize.py 5 1 80%
ohhi.py 1 0 100%
tmpenv/lib/python2.6/site.py 433 392 9%
-----------------------------------------------------
TOTAL 439 393 10%
For projects that need to cd during their test runs, and run many processes in parallel, I ensure a $TOP variable is exported, and I use this .coveragerc:
[run]
parallel = True
branch = True
data_file = $TOP/.coverage
[report]
exclude_lines =
# Have to re-enable the standard pragma
\#.*pragma:\s*no.?cover
# we can't get coverage for functions that don't return:
\#.*never returns
\#.*doesn't return
# Don't complain if tests don't hit defensive assertion code:
^\s*raise Impossible\b
^\s*raise AssertionError\b
^\s*raise NotImplementedError\b
^\s*return NotImplemented\b
# Don't complain if tests don't hit re-raise of unexpected errors:
^\s*raise$
# if main is covered, we're good:
^\s*exit\(main\(\)\)$
show_missing = True
[html]
directory = $TOP/coverage-html
# vim:ft=dosini
Wheel compatibility matrix
Files in release
Extras:
None
Dependencies:
coverage