From 33ff69639526d445e6466bb7ce7e75fa8f8dfdf1 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 23 Sep 2009 20:47:27 -0400 Subject: Some XML report fixes, and a very basic test. --- coverage/control.py | 5 +++-- coverage/report.py | 1 - coverage/xmlreport.py | 5 ++--- test/farm/html/gold_a_xml/coverage.xml | 18 ++++++++++++++++++ test/farm/html/run_a_xml.py | 17 +++++++++++++++++ 5 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 test/farm/html/gold_a_xml/coverage.xml create mode 100644 test/farm/html/run_a_xml.py diff --git a/coverage/control.py b/coverage/control.py index 4cf97d4..d04445f 100644 --- a/coverage/control.py +++ b/coverage/control.py @@ -321,11 +321,12 @@ class coverage: reporter.report( morfs, directory=directory, omit_prefixes=omit_prefixes) - def xml_report(self, morfs=None, ignore_errors=False, omit_prefixes=None): + def xml_report(self, morfs=None, outfile=None, ignore_errors=False, + omit_prefixes=None): """Generate an XML report of coverage results. The report is compatible with Cobertura reports. """ reporter = XmlReporter(self, ignore_errors) - reporter.report(morfs, omit_prefixes=omit_prefixes) + reporter.report(morfs, omit_prefixes=omit_prefixes, outfile=outfile) diff --git a/coverage/report.py b/coverage/report.py index 4475b00..561973b 100644 --- a/coverage/report.py +++ b/coverage/report.py @@ -59,4 +59,3 @@ class Reporter(object): except: if not self.ignore_errors: raise - diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py index 82d06f6..7fb2ba6 100644 --- a/coverage/xmlreport.py +++ b/coverage/xmlreport.py @@ -48,7 +48,7 @@ class XmlReporter(Reporter): c.appendChild(lines) className = fname.replace('.', '_') c.setAttribute("name", className) - c.setAttribute("filename", cu.name) + c.setAttribute("filename", cu.filename) c.setAttribute("complexity", "0.0") try: @@ -62,8 +62,7 @@ class XmlReporter(Reporter): # Q: can we get info about the number of times # a statement is executed? If so, that should be # recorded here. - if not line in missing: - l.setAttribute("hits", str(1)) + l.setAttribute("hits", str(int(not line in missing))) # Q: can we get info about whether this statement # is a branch? If so, that data should be diff --git a/test/farm/html/gold_a_xml/coverage.xml b/test/farm/html/gold_a_xml/coverage.xml new file mode 100644 index 0000000..9c67a55 --- /dev/null +++ b/test/farm/html/gold_a_xml/coverage.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/test/farm/html/run_a_xml.py b/test/farm/html/run_a_xml.py new file mode 100644 index 0000000..6df7dcd --- /dev/null +++ b/test/farm/html/run_a_xml.py @@ -0,0 +1,17 @@ +def html_it(): + """Run coverage and make an XML report for a.""" + import coverage + cov = coverage.coverage() + cov.start() + import a + cov.stop() + cov.xml_report(a, outfile=open("../xml/coverage.xml", 'w')) + +import os +if not os.path.exists("xml"): + os.makedirs("xml") + +runfunc(html_it, rundir="src") + +compare("xml", "gold_a_xml") +clean("xml") -- cgit v1.2.1