Test coverage reporting

Use this plugin to activate coverage report.

To use this plugin, you need to install nose2[coverage_plugin]. e.g.

$ pip install nose2[coverage_plugin]>=0.6.5

Then, you can enable coverage reporting with :

$ nose2 --with-coverage

Or with this lines in unittest.cfg :

[coverage]
always-on = True

You can further specify coverage behaviors with a .coveragerc file, as specified by Coverage Config. However, when doing so you should also be aware of Differences From coverage.

Configuration [coverage]

always-on
Default:False
Type:boolean
coverage
Default:[]
Type:list
coverage-config
Default:
Type:str
coverage-report
Default:[]
Type:list

Sample configuration

The default configuration is equivalent to including the following in a unittest.cfg file.

[coverage]
always-on = False
coverage = 
coverage-config = 
coverage-report = 

Command-line options

--coverage PATH

Measure coverage for filesystem path (multi-allowed)

--coverage-report TYPE

Generate selected reports, available types: term, term-missing, annotate, html, xml (multi-allowed)

--coverage-config FILE

Config file for coverage, default: .coveragerc

-C DEFAULT, --with-coverage DEFAULT

Turn on coverage reporting

Plugin class reference: Coverage

class nose2.plugins.coverage.Coverage[source]
afterSummaryReport(event)[source]

Reporting data is collected, failure status determined and set. Now print any buffered error output saved from beforeSummaryReport

beforeSummaryReport(event)[source]

Only called if active so stop coverage and produce reports.

createTests(event)[source]

Start coverage early to catch imported modules.

Only called if active so, safe to just start without checking flags

handleArgs(event)[source]

Get our options in order command line, config file, hard coded.

wasSuccessful(event)[source]

Mark full test run as successful or unsuccessful

Differences From coverage

The coverage tool is the basis for nose2’s coverage reporting. nose2 will seek to emulate coverage behavior whenever possible, but there are known cases where this is not feasible.

If you need the exact behaviors of coverage, consider having coverage invoke nose2.

Otherwise, please be aware of the following known differences:

  • The fail_under parameter results in an exit status of 2 for coverage, but an exit status of 1 for nose2