Closed yusufkandemir closed 1 year ago
It's fine for me, as it will only take place when using Vite and NODE_ENV is test
Not sure about changing the default CI command, IIRC I initially tried to make it work with quasar build + quasar serve
but dropped the idea due to problems with start-test
helper, but since then we managed to make it work in at least one of our projects with a command similar to
"test:e2e:ci": "cross-env NODE_ENV=test start-test \"quasar build && quasar serve\" http-get://localhost:<default Quasar serve port for Vite> \"cypress run\"",
We would need to test if this actually works and add a note on the README Has this problem been raised from the community somewhere?
Here is a somewhat simplified version of the script set I am using in the project I tried to get code coverage running on builds properly.
{
"test:e2e:ci": "cross-env NODE_ENV=test start http-get://localhost:9000 \"cypress run\"",
"start": "quasar build && yarn serve --silent -p 9000",
"serve": "quasar serve --history dist/spa"
}
It works properly(except for code coverage ofc). It can be simplified by falling back to the default port(4000), dropping the silent
flag(used for removing the unneeded noise in test outputs), inlining some scripts, etc. if need be.
Has this problem been raised from the community somewhere?
No, it was raised by me while working on a customer project.
I tried adding the quasar build
by default, but it would require adding a quasar serve
in the server setup command
Right now, unless we install @quasar/cli
locally and add some extra complexity to manage edge cases, this isn't really feasible while supporting all package managers
Right now it's a no-go, let's see if anything moves in the future
What kind of change does this PR introduce?
Does this PR introduce a breaking change?
The PR fulfills these requirements:
dev
branch and not themaster
branchOther information: Sometimes it makes more sense to use
quasar build
+quasar serve
instead ofquasar dev
, especially with Vite to avoid timeouts due to compiling on the fly. I would say it's a best practice in CI pipelines because using the production build would yield results closer to the real production environment. One could even use their actual webserver instead ofquasar serve
to also count it on the E2E tests. If you agree with any of these, I suppose we could add some information to the README file or even update thetest:e2e:ci
script template.So, anyways,
vite-plugin-istanbul
doesn't include code coverage when building(_determined by the Vite mode, notNODE_ENV_
) by default. So, to run E2E tests with code coverage on builds, we would need to setforceBuildInstrument: true
.I am classifying this as a feature, not a bug, because the scaffolded and recommended scripts use
quasar dev
, in which code coverage works nicely.