Skip to main content

enable python coverage for subprocesses

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coverage_enable_subprocess-1.0.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

coverage_enable_subprocess-1.0-py2.py3-none-any.whl (4.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file coverage_enable_subprocess-1.0.tar.gz.

File metadata

File hashes

Hashes for coverage_enable_subprocess-1.0.tar.gz
Algorithm Hash digest
SHA256 fdbd3dc9532007cd87ef84f38e16024c5b0ccb4ab2d1755225a7edf937acc011
MD5 f8e922de8b7fceedd7767da0e708030a
BLAKE2b-256 31f457693bcf041ba641501b7a2fafc9d3d2de647355d78c6a2e07fb53648eaa

See more details on using hashes here.

File details

Details for the file coverage_enable_subprocess-1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for coverage_enable_subprocess-1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 27982522339ec77662965e0d859da5662162962c874d54d2250426506818cbdc
MD5 6577ff11e7cad7c8c55e15864df21584
BLAKE2b-256 3158d8dd7edbf5e120942b6395b4c034506c68e56f656074522c83b59d9a4991

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page