rollup-plugin-vue
rollup-plugin-vue copied to clipboard
Error creating istanbul html report due to invalid file name
Version
5.0.0
Reproduction link
https://github.com/albertodeago/vue-webcomponent/tree/feature/coverage-issue
Steps to reproduce
- clone the repo, checkout the branch feature/coverage-issue
- npm i
- dist should already be populated (npm build:es otherwise)
- npm run cypress:open (and then run the test)
What is expected?
The coverage step should not fail and a coverage report should be collected
What is actually happening?
The coverage step (with istanbul) is failing
Looks like it's failing because the html is trying to create files with invalid names. This is because it tries to create the files for the Vue component with the rollup-plugin-vue queryparams
e.g.
file named TodoList.vue?rollup-plugin-vue=script.js
Looks like in the dist the bundled contains code like this
....
function cov_18z3v2j7yj() {
var path = "C:\\wamp64\\www\\tests\\vue-webcomponent\\src\\components\\todoList\\TodoList.vue?rollup-plugin-vue=script.js";
var hash = "e531caef3b1a08cf4b4cbc787bd69c985ff3e66d";
var global = new Function("return this")();
var gcv = "__coverage__";
var coverageData = {
path: "C:\\wamp64\\www\\tests\\vue-webcomponent\\src\\components\\todoList\\TodoList.vue?rollup-plugin-vue=script.js",
....
I think istanbul then is trying to create files with the name contained in "path" and thus it fails. I opened an issue to babel-plugin-istanbul here because i though it was the babel plugin to do this but they say it's not there.
Got the same problem. The path '*?rollup-plugin-vue=script.js' is invalid. Is there any solution?
My coverage runs, but results:
the report for MultiSelect.vue
is broken and incorrect:
the report data for MultiSelect.vue?rollup-plugin-vue=script.js
seems correct but not viewable:
What I expect:
-
*.vue
file should have correct coverage. -
*?rollup-plugin-vue=script.js
file should not appear.