Added a new release-coverage format which whould make it easier to show line-by-line code test coverage changes in the future.

- Legacy-Id: 13967
This commit is contained in:
Henrik Levkowetz 2017-07-24 17:38:00 +00:00
parent 2de6855ccd
commit d00921b94b
3 changed files with 10 additions and 2 deletions

View file

@ -108,12 +108,16 @@ class Command(BaseCommand):
mlines, mcov = mcoverage[mkey]
elif mformat == 4:
mlines, mcov = mcoverage[mkey]
elif mformat == 5:
mlines, mcov, mmissnum, mmisslines = mcoverage[mkey]
else:
raise CommandError("The release coverage data has an unknown format ('%s'), quitting." % mformat)
if lformat == 1:
linfo, lcov = None, lcoverage[key]
elif lformat in [2, 4]:
linfo, lcov = lcoverage[key]
elif lformat == 5:
linfo, lcov, lmissnum, lmisslines = lcoverage[key]
else:
raise CommandError("The latest coverage data has an unknown format ('%s'), quitting." % lformat)

View file

@ -236,12 +236,16 @@ class CoverageReporter(Reporter):
self.find_file_reporters(None)
total = Numbers()
result = {"coverage": 0.0, "covered": {}, "format": 2, }
result = {"coverage": 0.0, "covered": {}, "format": 5, }
for fr in self.file_reporters:
try:
analysis = self.coverage._analyze(fr)
nums = analysis.numbers
result["covered"][fr.relative_filename()] = (nums.n_statements, nums.pc_covered/100.0)
missing_nums = sorted(analysis.missing)
with open(analysis.filename) as file:
lines = file.read().splitlines()
missing_lines = [ lines[l-1] for l in missing_nums ]
result["covered"][fr.relative_filename()] = (nums.n_statements, nums.pc_covered/100.0, missing_nums, missing_lines)
total += nums
except KeyboardInterrupt: # pragma: not covered
raise

Binary file not shown.