diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2009-09-23 20:47:27 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2009-09-23 20:47:27 -0400 |
commit | 33ff69639526d445e6466bb7ce7e75fa8f8dfdf1 (patch) | |
tree | 201ab302d02110cdb9385cea6f550cff3970825a | |
parent | c4b8bbcc019167cc72bf03aa6842630e27d54b97 (diff) | |
download | python-coveragepy-33ff69639526d445e6466bb7ce7e75fa8f8dfdf1.tar.gz |
Some XML report fixes, and a very basic test.
-rw-r--r-- | coverage/control.py | 5 | ||||
-rw-r--r-- | coverage/report.py | 1 | ||||
-rw-r--r-- | coverage/xmlreport.py | 5 | ||||
-rw-r--r-- | test/farm/html/gold_a_xml/coverage.xml | 18 | ||||
-rw-r--r-- | test/farm/html/run_a_xml.py | 17 |
5 files changed, 40 insertions, 6 deletions
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 @@ +<?xml version="1.0" ?>
+<!DOCTYPE coverage
+ SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>
+<coverage>
+ <packages>
+ <package branch-rate="0.0" complexity="0.0" line-rate="0.666666666667" name=".">
+ <classes>
+ <class branch-rate="0.0" complexity="0.0" filename="c:\ned\coverage\trunk\test\farm\html\src\a.py" line-rate="0.666666666667" name="a">
+ <lines>
+ <line branch="false" hits="1" number="3"/>
+ <line branch="false" hits="1" number="5"/>
+ <line branch="false" hits="0" number="7"/>
+ </lines>
+ </class>
+ </classes>
+ </package>
+ </packages>
+</coverage>
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") |