-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
fix(coverage): vite-node to pass correct execution wrapper offset
#7417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(coverage): vite-node to pass correct execution wrapper offset
#7417
Conversation
✅ Deploy Preview for vitest-dev ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify site configuration. |
954d2a1 to
0f3f4f5
Compare
@vitest/web-worker with v8 coveragevite-node to pass correct execution wrapper offset
e7a39cc to
4e458b0
Compare
4e458b0 to
008b10d
Compare
hi-ogawa
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense to me 👍
I'm wondering what happens if the same file is imported from test and from @vitest/web-worker. Does startOffset conflict (last loaded win?) and so coverage is likely broken?
Yep, coverage could break then. Also V8 gets confused as the same file ID had different contents when executed. The script coverage is a mess then. |
|
Do we need to update vitest's |
Which package here? vitest/packages/vitest/package.json Lines 124 to 132 in 12eaf3e
Or you mean about using mixed versions? A year ago (#5208) we made the decision that Vitest monorepo's packages do not work with mixed versions. All packages must have the same version. And we've been introducing breaking changes between the packages ever since. There are also runtime warnings in |
e5fa58a to
89102c3
Compare
8c9f3f8 to
20a348b
Compare
##### [v3.0.6](https://github.com/vitest-dev/vitest/releases/tag/v3.0.6) ##### 🐞 Bug Fixes - Fix `getMockedSystemTime` for `useFakeTimer` - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7405 [<samp>(03912)</samp>](vitest-dev/vitest@03912b43) - Compat for jest-image-snapshot - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7390 [<samp>(9542b)</samp>](vitest-dev/vitest@9542b699) - Ensure project names are readable in dark terminals - by [@rgrove](https://github.com/rgrove) in vitest-dev/vitest#7371 [<samp>(bb94c)</samp>](vitest-dev/vitest@bb94c19f) - Exclude `queueMicrotask` from default fake timers to not break node fetch - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7505 [<samp>(167a9)</samp>](vitest-dev/vitest@167a98d7) - **browser**: - Fix mocking modules out of root - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7415 [<samp>(d3acb)</samp>](vitest-dev/vitest@d3acbd8b) - Fix `toHaveClass` typing - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7383 [<samp>(7ef23)</samp>](vitest-dev/vitest@7ef238c0) - Relax locator selectors methods - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#7422 [<samp>(1b8c5)</samp>](vitest-dev/vitest@1b8c5c9e) - Resolve thread count from `maxWorkers` - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7483 [<samp>(adbb2)</samp>](vitest-dev/vitest@adbb25ab) - Cleanup timeout on resolve and give more information in the error - by [@sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#7487 [<samp>(5a45a)</samp>](vitest-dev/vitest@5a45a7ca) - **coverage**: - `vite-node` to pass correct execution wrapper offset - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7417 [<samp>(1f2e5)</samp>](vitest-dev/vitest@1f2e5552) - Preserve moduleExecutionInfo in non-isolated runs - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7486 [<samp>(f31a0)</samp>](vitest-dev/vitest@f31a07bb) - **deps**: - Update all non-major dependencies - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7363 [<samp>(e348b)</samp>](vitest-dev/vitest@e348bd4c) - Update all non-major dependencies - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7507 [<samp>(6cc40)</samp>](vitest-dev/vitest@6cc408d6) - **init**: - Invalid browser config - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7475 [<samp>(8fe64)</samp>](vitest-dev/vitest@8fe641b4) - **reporters**: - Render tasks in tree when in TTY - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7503 [<samp>(027ce)</samp>](vitest-dev/vitest@027ce9bb) - **vite-node**: - Remove fake first line mapping on Vite 6 - by [@hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7124 [<samp>(b9973)</samp>](vitest-dev/vitest@b997355b) - **watch**: - Properly remove cache after removing existing test files - by [@soc221b](https://github.com/soc221b) in vitest-dev/vitest#7399 [<samp>(01a59)</samp>](vitest-dev/vitest@01a59721) - **workspace**: - Forward `inspect` related cli options - by [@AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7373 [<samp>(ed15b)</samp>](vitest-dev/vitest@ed15b5b3) ##### [View changes on GitHub](vitest-dev/vitest@v3.0.5...v3.0.6)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)) | devDependencies | patch | [`3.0.5` -> `3.0.7`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/3.0.5/3.0.7) | | [vitest](https://github.com/vitest-dev/vitest) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | devDependencies | patch | [`3.0.5` -> `3.0.7`](https://renovatebot.com/diffs/npm/vitest/3.0.5/3.0.7) | --- ### Release Notes <details> <summary>vitest-dev/vitest (@​vitest/coverage-v8)</summary> ### [`v3.0.7`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.7) [Compare Source](vitest-dev/vitest@v3.0.6...v3.0.7) ##### 🐞 Bug Fixes - **browser**: Support webdriverio 9 - by [@​sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#7553 [<samp>(b1949)</samp>](vitest-dev/vitest@b1949c97) - **deps**: Update all non-major dependencies - in vitest-dev/vitest#7543 [<samp>(365ff)</samp>](vitest-dev/vitest@365ffe6b) - **expect**: Correct generic MatchersObject this type in expect.extend - by [@​Workingstiff-s](https://github.com/Workingstiff-s) in vitest-dev/vitest#7526 [<samp>(d5765)</samp>](vitest-dev/vitest@d5765f71) - **mocker**: Include more modules to prefix-only module list - by [@​btea](https://github.com/btea) in vitest-dev/vitest#7524 [<samp>(a12ec)</samp>](vitest-dev/vitest@a12ec008) - **spy**: Clear/reset/restore mocks in stack order - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7499 [<samp>(f7100)</samp>](vitest-dev/vitest@f71004ff) ##### 🏎 Performance - **browser**: Do wdio context switching only once per file - by [@​sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#7549 [<samp>(aaa58)</samp>](vitest-dev/vitest@aaa58556) ##### [View changes on GitHub](vitest-dev/vitest@v3.0.6...v3.0.7) ### [`v3.0.6`](https://github.com/vitest-dev/vitest/releases/tag/v3.0.6) [Compare Source](vitest-dev/vitest@v3.0.5...v3.0.6) ##### 🐞 Bug Fixes - Fix `getMockedSystemTime` for `useFakeTimer` - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7405 [<samp>(03912)</samp>](vitest-dev/vitest@03912b43) - Compat for jest-image-snapshot - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7390 [<samp>(9542b)</samp>](vitest-dev/vitest@9542b699) - Ensure project names are readable in dark terminals - by [@​rgrove](https://github.com/rgrove) in vitest-dev/vitest#7371 [<samp>(bb94c)</samp>](vitest-dev/vitest@bb94c19f) - Exclude `queueMicrotask` from default fake timers to not break node fetch - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7505 [<samp>(167a9)</samp>](vitest-dev/vitest@167a98d7) - **browser**: - Fix mocking modules out of root - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7415 [<samp>(d3acb)</samp>](vitest-dev/vitest@d3acbd8b) - Fix `toHaveClass` typing - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7383 [<samp>(7ef23)</samp>](vitest-dev/vitest@7ef238c0) - Relax locator selectors methods - by [@​sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#7422 [<samp>(1b8c5)</samp>](vitest-dev/vitest@1b8c5c9e) - Resolve thread count from `maxWorkers` - by [@​AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7483 [<samp>(adbb2)</samp>](vitest-dev/vitest@adbb25ab) - Cleanup timeout on resolve and give more information in the error - by [@​sheremet-va](https://github.com/sheremet-va) in vitest-dev/vitest#7487 [<samp>(5a45a)</samp>](vitest-dev/vitest@5a45a7ca) - **coverage**: - `vite-node` to pass correct execution wrapper offset - by [@​AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7417 [<samp>(1f2e5)</samp>](vitest-dev/vitest@1f2e5552) - Preserve moduleExecutionInfo in non-isolated runs - by [@​AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7486 [<samp>(f31a0)</samp>](vitest-dev/vitest@f31a07bb) - **deps**: - Update all non-major dependencies - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7363 [<samp>(e348b)</samp>](vitest-dev/vitest@e348bd4c) - Update all non-major dependencies - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7507 [<samp>(6cc40)</samp>](vitest-dev/vitest@6cc408d6) - **init**: - Invalid browser config - by [@​AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7475 [<samp>(8fe64)</samp>](vitest-dev/vitest@8fe641b4) - **reporters**: - Render tasks in tree when in TTY - by [@​AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7503 [<samp>(027ce)</samp>](vitest-dev/vitest@027ce9bb) - **vite-node**: - Remove fake first line mapping on Vite 6 - by [@​hi-ogawa](https://github.com/hi-ogawa) in vitest-dev/vitest#7124 [<samp>(b9973)</samp>](vitest-dev/vitest@b997355b) - **watch**: - Properly remove cache after removing existing test files - by [@​soc221b](https://github.com/soc221b) in vitest-dev/vitest#7399 [<samp>(01a59)</samp>](vitest-dev/vitest@01a59721) - **workspace**: - Forward `inspect` related cli options - by [@​AriPerkkio](https://github.com/AriPerkkio) in vitest-dev/vitest#7373 [<samp>(ed15b)</samp>](vitest-dev/vitest@ed15b5b3) ##### [View changes on GitHub](vitest-dev/vitest@v3.0.5...v3.0.6) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Reviewed-on: https://gitea.justinelmore.dev/jelmore1674/build-changelog/pulls/91 Co-authored-by: Renovate Bot <[email protected]> Co-committed-by: Renovate Bot <[email protected]>
Description
Makes
vite-nodeto hold info about the execution wrapper it uses when executing modules. Coverage providers are passed this info on the test runner thread so that they can attach it into the coverage results. There's no longer need to hard-code the wrapper length on main thread codebase. The exampleweb-worker.test.tshas a case where in a single test runner thread some code is executed with 185 long wrapper and some with ~430 long wrapper.Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
pnpm-lock.yamlunless you introduce a new test example.Tests
pnpm test:ci.Documentation
pnpm run docscommand.Changesets
feat:,fix:,perf:,docs:, orchore:.