diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2015-01-19 18:03:21 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2015-01-19 18:03:21 -0500 |
commit | 66ee95f02fdfee8b9c99c799224714e2be634db2 (patch) | |
tree | 915b2009d7d539770cd464b635e3cd249ab3beef /coverage/xmlreport.py | |
parent | 36d64a121eee1c2406ad09debc3c9da872d2e36f (diff) | |
download | python-coveragepy-66ee95f02fdfee8b9c99c799224714e2be634db2.tar.gz |
Fix bad regression: XML report now reports packages again. #235
Diffstat (limited to 'coverage/xmlreport.py')
-rw-r--r-- | coverage/xmlreport.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index 45a4652..3510c5b 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -1,11 +1,14 @@ """XML reporting for coverage.py""" -import os, sys, time +import os +import sys +import time import xml.dom.minidom from coverage import __url__, __version__ from coverage.report import Reporter + def rate(hit, num): """Return the fraction of `hit`/`num`, as a string.""" if num == 0: @@ -118,7 +121,10 @@ class XmlReporter(Reporter): # Create the 'lines' and 'package' XML elements, which # are populated later. Note that a package == a directory. - package_name = cu.name.rpartition(".")[0] + filename = cu.file_locator.relative_filename(cu.filename) + filename = filename.replace("\\", "/") + dirname = os.path.dirname(filename) or "." + package_name = dirname.replace("/", ".") className = cu.name self.source_paths.add(cu.file_locator.relative_dir.rstrip('/')) @@ -131,9 +137,8 @@ class XmlReporter(Reporter): xlines = self.xml_out.createElement("lines") xclass.appendChild(xlines) - xclass.setAttribute("name", className) - filename = cu.file_locator.relative_filename(cu.filename) - xclass.setAttribute("filename", filename.replace("\\", "/")) + xclass.setAttribute("name", os.path.relpath(filename, dirname)) + xclass.setAttribute("filename", filename) xclass.setAttribute("complexity", "0") branch_stats = analysis.branch_stats() @@ -151,7 +156,8 @@ class XmlReporter(Reporter): if line in branch_stats: total, taken = branch_stats[line] xline.setAttribute("branch", "true") - xline.setAttribute("condition-coverage", + xline.setAttribute( + "condition-coverage", "%d%% (%d/%d)" % (100*taken/total, taken, total) ) xlines.appendChild(xline) @@ -174,6 +180,7 @@ class XmlReporter(Reporter): else: branch_rate = "0" xclass.setAttribute("branch-rate", branch_rate) + package[0][className] = xclass package[1] += class_hits package[2] += class_lines |