summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2009-09-23 20:47:27 -0400
committerNed Batchelder <ned@nedbatchelder.com>2009-09-23 20:47:27 -0400
commitc0f54c80150b65d650e85339e98c17d025625d24 (patch)
tree46286e75bdf3791cfdbe786d476032f81ca76fb5
parente3ff72a32401f97b4e3f8e627780c87366d62414 (diff)
downloadpython-coveragepy-git-c0f54c80150b65d650e85339e98c17d025625d24.tar.gz
Some XML report fixes, and a very basic test.
-rw-r--r--coverage/control.py5
-rw-r--r--coverage/report.py1
-rw-r--r--coverage/xmlreport.py5
-rw-r--r--test/farm/html/gold_a_xml/coverage.xml18
-rw-r--r--test/farm/html/run_a_xml.py17
5 files changed, 40 insertions, 6 deletions
diff --git a/coverage/control.py b/coverage/control.py
index 4cf97d40..d04445f8 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 4475b00e..561973b5 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 82d06f6b..7fb2ba67 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 00000000..9c67a55c
--- /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 00000000..6df7dcd4
--- /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")