diff options
author | Timothée Peignier <timothee.peignier@tryphon.org> | 2011-08-02 22:40:05 +0200 |
---|---|---|
committer | Timothée Peignier <timothee.peignier@tryphon.org> | 2011-08-02 22:40:05 +0200 |
commit | af93508d01c3da5a9b352f82eadb2197f0f5a9c6 (patch) | |
tree | 341c66023d0303983e02ff4c3355caea5212df47 /nose | |
parent | 2a9857a3de2f7a93a7c4d97b6b2134bfadca4176 (diff) | |
download | nose-af93508d01c3da5a9b352f82eadb2197f0f5a9c6.tar.gz |
add branch coverage option
Diffstat (limited to 'nose')
-rw-r--r-- | nose/plugins/cover.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/nose/plugins/cover.py b/nose/plugins/cover.py index f10b198..8be1fe2 100644 --- a/nose/plugins/cover.py +++ b/nose/plugins/cover.py @@ -17,7 +17,7 @@ import sys from nose.plugins.base import Plugin from nose.util import src, tolist -log = logging.getLogger(__name__) +log = logging.getLogger(__name__) COVERAGE_TEMPLATE = '''<html> <head> @@ -64,7 +64,7 @@ class Coverage(Plugin): if not self._coverInstance: import coverage try: - self._coverInstance = coverage.coverage() + self._coverInstance = coverage.coverage(branch=self.coverBranches) except coverage.CoverageException: self._coverInstance = coverage return self._coverInstance @@ -108,6 +108,11 @@ class Coverage(Plugin): dest='cover_html_dir', metavar='DIR', help='Produce HTML coverage information in dir') + parser.add_option("--cover-branches", action="store_true", + default=env.get('NOSE_COVER_BRANCHES'), + dest="cover_branches", + help="Include branch coverage in coverage report " + "[NOSE_COVER_BRANCHES]") def configure(self, options, config): """ @@ -143,6 +148,7 @@ class Coverage(Plugin): if options.cover_html: self.coverHtmlDir = options.cover_html_dir log.debug('Will put HTML coverage report in %s', self.coverHtmlDir) + self.coverBranches = options.cover_branches if self.enabled: self.status['active'] = True @@ -165,9 +171,9 @@ class Coverage(Plugin): log.debug("Coverage report") self.coverInstance.stop() self.coverInstance.save() - modules = [ module + modules = [module for name, module in sys.modules.items() - if self.wantModuleCoverage(name, module) ] + if self.wantModuleCoverage(name, module)] log.debug("Coverage report will cover modules: %s", modules) self.coverInstance.report(modules, file=stream) if self.coverHtmlDir: @@ -185,12 +191,12 @@ class Coverage(Plugin): if hasattr(m, '__name__') and hasattr(m, '__file__'): files[m.__name__] = m.__file__ self.coverInstance.annotate(files.values()) - global_stats = {'covered': 0, 'missed': 0, 'skipped': 0} + global_stats = {'covered': 0, 'missed': 0, 'skipped': 0} file_list = [] for m, f in files.iteritems(): if f.endswith('pyc'): f = f[:-1] - coverfile = f+',cover' + coverfile = f + ',cover' outfile, stats = self.htmlAnnotate(m, f, coverfile, self.coverHtmlDir) for field in ('covered', 'missed', 'skipped'): @@ -263,7 +269,7 @@ class Coverage(Plugin): if covered + missed == 0: percent = 1 else: - percent = covered/(covered+missed+0.0) + percent = covered / (covered + missed + 0.0) return int(percent * 100) def wantModuleCoverage(self, name, module): |