ryanluker / vscode-coverage-gutters

Display test coverage generated by lcov and xml - works with many languages
https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters
MIT License
460 stars 88 forks source link

Incompatibility with Jacoco XML report #163

Closed foxpluto closed 6 years ago

foxpluto commented 6 years ago

Dear Ryanluker,

it seems that your plugin is incompatible with the XML created by Jacoco for Java Code Coverage. Here is the error:

[1534934414978][coverageservice]: LOADING
[1534934415364][coverageservice]: Loading 1 file(s)
[1534934415406][lcovparser][cobertura-parse]: Error: Cannot read property 'packages' of undefined
[1534934415406][lcovparser][cobertura-parse]: Stacktrace: TypeError: Cannot read property 'packages' of undefined
    at unpackage (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/cobertura-parse/source/index.js:71:29)
    at /Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/cobertura-parse/source/index.js:134:22
    at Parser.<anonymous> (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/xml2js/lib/parser.js:303:18)
    at emitOne (events.js:116:13)
    at Parser.emit (events.js:211:7)
    at SAXParser.onclosetag (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/xml2js/lib/parser.js:261:26)
    at emit (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/sax/lib/sax.js:624:35)
    at emitNode (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/sax/lib/sax.js:629:5)
    at closeTag (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/sax/lib/sax.js:889:7)
    at SAXParser.write (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/sax/lib/sax.js:1436:13)
    at Parser.exports.Parser.Parser.parseString (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/xml2js/lib/parser.js:322:31)
    at Parser.parseString (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/xml2js/lib/parser.js:5:59)
    at exports.parseString (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/xml2js/lib/parser.js:354:19)
    at Object.parse.parseContent (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/node_modules/cobertura-parse/source/index.js:127:5)
    at Promise (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/lcovparser.js:52:35)
    at new WrappedPromise (/Users/fox/.vscode/extensions/vscjava.vscode-maven-0.10.0/node_modules/async-listener/es6-wrapped-promise.js:13:18)
    at LcovParser.xmlExtractCobertura (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/lcovparser.js:50:16)
    at LcovParser.<anonymous> (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/lcovparser.js:38:43)
    at Generator.next (<anonymous>)
    at /Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/lcovparser.js:7:71
    at new WrappedPromise (/Users/fox/.vscode/extensions/vscjava.vscode-maven-0.10.0/node_modules/async-listener/es6-wrapped-promise.js:13:18)
    at __awaiter (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/lcovparser.js:3:12)
    at LcovParser.filesToSections (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/lcovparser.js:25:16)
    at CoverageService.<anonymous> (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/coverageservice.js:68:60)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/fox/.vscode/extensions/ryanluker.vscode-coverage-gutters-2.1.1/out/src/coverageservice.js:4:58)
    at propagateAslWrapper (/Users/fox/.vscode/extensions/vscjava.vscode-maven-0.10.0/node_modules/async-listener/index.js:502:23)
    at /Users/fox/.vscode/extensions/vscjava.vscode-maven-0.10.0/node_modules/async-listener/glue.js:188:31
    at /Users/fox/.vscode/extensions/vscjava.vscode-maven-0.10.0/node_modules/async-listener/index.js:539:70
    at /Users/fox/.vscode/extensions/vscjava.vscode-maven-0.10.0/node_modules/async-listener/glue.js:188:31
    at <anonymous>
[1534934415406][coverageservice]: Caching 0 coverage(s)
[1534934415406][coverageservice]: READY
[1534934415406][coverageservice]: RENDERING
[1534934415406][coverageservice]: READY

I attached the file for you.

Regards, S. cov.xml.zip

ryanluker commented 6 years ago

@foxpluto thanks for submitting an issue! It is rather easy to add another parser https://github.com/ryanluker/vscode-coverage-gutters/commit/50ea4fea491d9b69a8ee46143b6df1ab80d5ceb3 as long as we can figure out the structure of the xml to use in the conditional logic flow. I see that you provided the xml as well so that will make this much easier :nerd_face:. I will take a look at this when I do the next release (2.2.0) or someone else can try to tackle it before then by looking at the other parser integrations.

ryanluker commented 6 years ago

@foxpluto completed this in #165 and it should go out in the 2.2.0 release (~ a couple days or so).

foxpluto commented 6 years ago

Wow!

That's great!

Thanks a lot.

Regards, Stefano

Il Dom 9 Set 2018, 21:47 Ryan Luker notifications@github.com ha scritto:

Closed #163 https://github.com/ryanluker/vscode-coverage-gutters/issues/163.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ryanluker/vscode-coverage-gutters/issues/163#event-1834712013, or mute the thread https://github.com/notifications/unsubscribe-auth/AZAkxceD2jm4I2GgvK4Pcwpvzc2-sY85ks5uZXBkgaJpZM4WHa4J .