rollup-plugin-vue icon indicating copy to clipboard operation
rollup-plugin-vue copied to clipboard

Error creating istanbul html report due to invalid file name

Open albertodeago opened this issue 4 years ago • 2 comments

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.

albertodeago avatar Apr 02 '20 10:04 albertodeago

Got the same problem. The path '*?rollup-plugin-vue=script.js' is invalid. Is there any solution?

hy-inger avatar Apr 24 '20 01:04 hy-inger

My coverage runs, but results:

image

the report for MultiSelect.vue is broken and incorrect:

image

the report data for MultiSelect.vue?rollup-plugin-vue=script.js seems correct but not viewable:

image

What I expect:

  1. *.vue file should have correct coverage.
  2. *?rollup-plugin-vue=script.js file should not appear.

wxsms avatar Jul 29 '20 10:07 wxsms