diff options
author | John Szakmeister <john@szakmeister.net> | 2015-04-04 04:41:54 -0400 |
---|---|---|
committer | John Szakmeister <john@szakmeister.net> | 2015-04-04 04:41:54 -0400 |
commit | 3151de8b387ae43a834b67f6ab726c42d110c3ef (patch) | |
tree | 77369b6d7d3bc9ede4daaf304e7c298b5e703d0d | |
parent | b6b6219ec04de645199b05ed75af2520d3390cd7 (diff) | |
parent | 6e47b6db22110b6c9b61b14cb09962fcce84d2bf (diff) | |
download | nose-3151de8b387ae43a834b67f6ab726c42d110c3ef.tar.gz |
Merge pull request #841 from fellowshipofone/master
[plugins] Handle multiprocess & cover together
-rw-r--r-- | nose/plugins/cover.py | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/nose/plugins/cover.py b/nose/plugins/cover.py index 551f332..fbe2e30 100644 --- a/nose/plugins/cover.py +++ b/nose/plugins/cover.py @@ -99,8 +99,6 @@ class Coverage(Plugin): except KeyError: pass super(Coverage, self).configure(options, conf) - if conf.worker: - return if self.enabled: try: import coverage @@ -140,22 +138,42 @@ class Coverage(Plugin): if self.enabled: self.status['active'] = True self.coverInstance = coverage.coverage(auto_data=False, - branch=self.coverBranches, data_suffix=None, + branch=self.coverBranches, data_suffix=conf.worker, source=self.coverPackages) + self.coverInstance._warn_no_data = False + self.coverInstance.is_worker = conf.worker + self.coverInstance.exclude('#pragma[: ]+[nN][oO] [cC][oO][vV][eE][rR]') - def begin(self): + log.debug("Coverage begin") + self.skipModules = sys.modules.keys()[:] + if self.coverErase: + log.debug("Clearing previously collected coverage statistics") + self.coverInstance.combine() + self.coverInstance.erase() + + if not self.coverInstance.is_worker: + self.coverInstance.load() + self.coverInstance.start() + + + def beforeTest(self, *args, **kwargs): """ Begin recording coverage information. """ - log.debug("Coverage begin") - self.skipModules = sys.modules.keys()[:] - if self.coverErase: - log.debug("Clearing previously collected coverage statistics") - self.coverInstance.combine() - self.coverInstance.erase() - self.coverInstance.exclude('#pragma[: ]+[nN][oO] [cC][oO][vV][eE][rR]') - self.coverInstance.load() - self.coverInstance.start() + + if self.coverInstance.is_worker: + self.coverInstance.load() + self.coverInstance.start() + + def afterTest(self, *args, **kwargs): + """ + Stop recording coverage information. + """ + + if self.coverInstance.is_worker: + self.coverInstance.stop() + self.coverInstance.save() + def report(self, stream): """ |