vscode-coverage-gutters icon indicating copy to clipboard operation
vscode-coverage-gutters copied to clipboard

stack trace failure parsing cobertura.xml

Open andyczerwonka opened this issue 4 months ago • 3 comments

Describe the bug I'm running scoverage (https://github.com/scoverage/sbt-scoverage) that is generating cobertura.xml files, but when I try and use gutters, the output shows the following exception.

[1760981657905][coverageparser][cobertura-parse]: Error: filename: /home/aczerwon/citrine/platform-backend/code/workflow/target/scala-2.13/coverage-report/cobertura.xml Cannot read properties of undefined (reading 'match')
[1760981657905][coverageparser][cobertura-parse]: Stacktrace: TypeError: filename: /home/aczerwon/citrine/platform-backend/code/workflow/target/scala-2.13/coverage-report/cobertura.xml Cannot read properties of undefined (reading 'match')
	at /home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:28142
	at Array.forEach (<anonymous>)
	at Uc (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:28067)
	at /home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:28450
	at Array.map (<anonymous>)
	at Vc (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:28428)
	at /home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:29392
	at m.<anonymous> (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:26639)
	at m.emit (node:events:519:28)
	at n.onclosetag (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:25945)
	at T (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:9:3620)
	at I (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:9:3659)
	at kt (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:14:1845)
	at n.Nu [as write] (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:16:4795)
	at m.parseString (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:26880)
	at m.parseString (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:21413)
	at _t.parseString (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:27244)
	at $e.parseContent (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:19:29350)
	at /home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:22:6373
	at new Promise (<anonymous>)
	at ur.xmlExtractCobertura (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:22:6229)
	at ur.filesToSections (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:22:5912)
	at async dr.loadCache (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:22:14317)
	at async dr.loadCacheAndProcess (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:22:14661)
	at async dr.displayForFile (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:22:13393)
	at async yr.displayCoverageForActiveFile (/home/aczerwon/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.14.0/dist/extension.js:22:17154)
	at async iy.h (file:///snap/code/211/usr/share/code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:114:41613)

cobertura.xml

Desktop :

  • Extension Version: 2.14.0
  • VSCode: Version: 1.105.1
  • Commit: 7d842fb85a0275a4a8e4d7e040d2625abbf7f084
  • Date: 2025-10-14T22:33:36.618Z
  • Electron: 37.6.0
  • ElectronBuildId: 12502201
  • Chromium: 138.0.7204.251
  • Node.js: 22.19.0
  • V8: 13.8.258.32-electron.0
  • OS: Linux x64 6.16.3-76061603-generic snap

Additional context My config includes:

"coverage-gutters.coverageFileNames": [
    "**/coverage-report/cobertura.xml"
  ],

Potentially Related Issues

  • https://github.com/ryanluker/vscode-coverage-gutters/issues/438

andyczerwonka avatar Oct 20 '25 17:10 andyczerwonka

@andyczerwonka Interesting issue, thanks for the ticket.

I added the investigating label for now as it might be a specific issue with cobertura-parse or the file content. Can you compare / provide a snippet of the cobertura.xml file so we can see if there are any obvious differences between that and the example ones (see anything with a mention of cobertura in the example folder)?

https://github.com/ryanluker/vscode-coverage-gutters/blob/master/example/python/cov.xml#L4

ryanluker avatar Nov 10 '25 17:11 ryanluker

Can you compare / provide a snippet of the cobertura.xml file

Hi @ryanluker , thanks for investigating. The file is already in the ticket above. I'll link it here for convenience.

andyczerwonka avatar Nov 10 '25 18:11 andyczerwonka

Whoops missed that link! I will take a look, thanks.

Can you compare / provide a snippet of the cobertura.xml file

Hi @ryanluker , thanks for investigating. The file is already in the ticket above. I'll link it here for convenience.

ryanluker avatar Nov 10 '25 18:11 ryanluker