Comments (11)
@vitest/web-worker
is only a web worker emulation on node runtime, so it doesn't deal with Vite client ?url
convention.
You might have a better chance running that with Vitest browser mode instead https://vitest.dev/guide/browser/
If you really need to test wasm binding on non browser mode Vitest, then it might require some restructuring like I suggested previously in a different issue #5704 (comment)
from vitest.
Vite and Vitest resolve the same value of import, but as I said in the previous comment, the environment where it runs is different, so how you use the value depends on your use case.
In your code you pass the value to fetch
- in the browser, it resolves the URL relative to the server origin (http://localhost
+ /gsa.wasm
), but on the server fetch
doesn't have this information and it requires a full URL :) (just /gsa.wasm
is not a valid URL)
from vitest.
I search the issue previously, seems the browser mode won't collect the coverage for the worker?
from vitest.
Right, I think you're referring this issue and coverage is not supported #4899 (comment)
from vitest.
I created a hack to import the wasm in the normal test file and mock it to the worker, please see Zxilly/go-size-analyzer@45149d9
from vitest.
But I don't understand why in this case worker.ts is still not covered by coverage.
from vitest.
After switch to v8 coverage provider things got resolved.
from vitest.
?url
actually resolves the file as an absolute pathname
(this is Vite feature, not Vitest). To make it a valid file you still need an origin like http://localhost
- but since in Node.js there is no origin, you should probably resolve it to a file://
yourself somehow.
Closing this as it's working as expected.
from vitest.
As https://vitest.dev/guide/why.html
suggested
A test runner that uses the same configuration of your App (through ), sharing a common transformation pipeline during dev, build, and test time.
I think keep this behavior same between the vite and vitest is meaningful.
from vitest.
This is why we keep the behaviour :)
Vite and Vitest resolve the same value of import, but as I said in the previous comment, the environment where it runs is different, so how you use the value depends on your use case.
from vitest.
I understand that, maybe need to setup a transformer for node environment. Thanks.
from vitest.
Related Issues (20)
- Error in Browser mode x Node APIs HOT 15
- Declaring a variable name as "it" will throw an error HOT 2
- TypeError: Cannot read properties of undefined (reading 'endCol') HOT 9
- `vitest init browser` creates invalid workspace file HOT 1
- coverage-v8 issues with calculation of branch coverage HOT 5
- npm error ERESOLVE unable to resolve dependency tree HOT 1
- Assertion message lengths should be clamped HOT 3
- Exclude setting in vitest config doesn't seem to work HOT 1
- Custom Reporter - TaskMetadata is not being sent HOT 4
- `toMatchInlineSnapshot` produces invalid code when called inside a loop HOT 5
- Exclude not working in the Vitest Workspace Config HOT 5
- Allow project filtered test runs to report coverage of only filtered projects HOT 1
- Library is loadable by `vitest` but not `vite-node` HOT 3
- `expect(value, MESSAGE)` is not documented
- Project name colours are not accessible HOT 1
- Cannot use vitest with NestJS and @types/fhir package HOT 3
- Getting this.coverageProvider?.generateCoverage is not a function with Vitest 2.0 HOT 2
- Snapshots do not generate CSS class definitions
- Add support for advancing timers to the next animation frame
- Support spread parameters for extensions [in types] HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vitest.