eric6/DebugClients/Python/coverage/xmlreport.py

changeset 7702
f8b97639deb5
parent 7427
362cd1b6f81a
diff -r 25f42e208e08 -r f8b97639deb5 eric6/DebugClients/Python/coverage/xmlreport.py
--- a/eric6/DebugClients/Python/coverage/xmlreport.py	Tue Sep 15 19:09:05 2020 +0200
+++ b/eric6/DebugClients/Python/coverage/xmlreport.py	Thu Sep 17 19:10:36 2020 +0200
@@ -41,7 +41,9 @@
         if self.config.source:
             for src in self.config.source:
                 if os.path.exists(src):
-                    self.source_paths.add(files.canonical_filename(src))
+                    if not self.config.relative_files:
+                        src = files.canonical_filename(src)
+                    self.source_paths.add(src)
         self.packages = {}
         self.xml_out = None
 
@@ -140,22 +142,26 @@
     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("\\", "/")
         for source_path in self.source_paths:
+            source_path = files.canonical_filename(source_path)
             if filename.startswith(source_path.replace("\\", "/") + "/"):
                 rel_name = filename[len(source_path)+1:]
                 break
         else:
             rel_name = fr.relative_filename()
+            self.source_paths.add(fr.filename[:-len(rel_name)].rstrip(r"\/"))
 
         dirname = os.path.dirname(rel_name) or u"."
         dirname = "/".join(dirname.split("/")[:self.config.xml_package_depth])
         package_name = dirname.replace("/", ".")
 
-        if rel_name != fr.filename:
-            self.source_paths.add(fr.filename[:-len(rel_name)].rstrip(r"\/"))
         package = self.packages.setdefault(package_name, [{}, 0, 0, 0, 0])
 
         xclass = self.xml_out.createElement("class")

eric ide

mercurial