summaryrefslogtreecommitdiff
path: root/coverage
diff options
context:
space:
mode:
Diffstat (limited to 'coverage')
-rw-r--r--coverage/cmdline.py6
-rw-r--r--coverage/control.py4
-rw-r--r--coverage/xmlreport.py4
3 files changed, 11 insertions, 3 deletions
diff --git a/coverage/cmdline.py b/coverage/cmdline.py
index 7af7913e..059d42a2 100644
--- a/coverage/cmdline.py
+++ b/coverage/cmdline.py
@@ -446,6 +446,7 @@ CMDS = {
Opts.include,
Opts.omit,
Opts.output_xml,
+ Opts.skip_empty,
] + GLOBAL_ARGS,
usage="[options] [modules]",
description="Generate an XML report of coverage results."
@@ -616,7 +617,10 @@ class CoverageScript(object):
)
elif options.action == "xml":
outfile = options.outfile
- total = self.coverage.xml_report(outfile=outfile, **report_args)
+ total = self.coverage.xml_report(
+ outfile=outfile, skip_empty=options.skip_empty,
+ **report_args
+ )
elif options.action == "json":
outfile = options.outfile
total = self.coverage.json_report(
diff --git a/coverage/control.py b/coverage/control.py
index 14c22eb1..bd7ba2e6 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -947,7 +947,7 @@ class Coverage(object):
def xml_report(
self, morfs=None, outfile=None, ignore_errors=None,
- omit=None, include=None, contexts=None,
+ omit=None, include=None, contexts=None, skip_empty=None,
):
"""Generate an XML report of coverage results.
@@ -963,7 +963,7 @@ class Coverage(object):
"""
with override_config(self,
ignore_errors=ignore_errors, report_omit=omit, report_include=include,
- xml_output=outfile, report_contexts=contexts,
+ xml_output=outfile, report_contexts=contexts, skip_empty=skip_empty,
):
return render_report(self.config.xml_output, XmlReporter(self), morfs)
diff --git a/coverage/xmlreport.py b/coverage/xmlreport.py
index ad44775f..6d012ee6 100644
--- a/coverage/xmlreport.py
+++ b/coverage/xmlreport.py
@@ -142,6 +142,10 @@ class XmlReporter(object):
def xml_file(self, fr, analysis, has_arcs):
"""Add to the XML report for a single file."""
+ if self.config.skip_empty:
+ if analysis.numbers.n_statements == 0:
+ return
+
# Create the 'lines' and 'package' XML elements, which
# are populated later. Note that a package == a directory.
filename = fr.filename.replace("\\", "/")