-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Vitest switch #4687
base: main
Are you sure you want to change the base?
Vitest switch #4687
Conversation
📊 Tachometer Benchmark ResultsSummaryduration
usedJSHeapSize
Resultscreate10kduration
usedJSHeapSize
filter-listduration
usedJSHeapSize
hydrate1kduration
usedJSHeapSize
many-updatesduration
usedJSHeapSize
replace1kduration
usedJSHeapSize
run-warmup-0
run-warmup-1
run-warmup-2
run-warmup-3
run-warmup-4
run-final
text-updateduration
usedJSHeapSize
tododuration
usedJSHeapSize
update10th1kduration
usedJSHeapSize
|
80efc74
to
ea827e9
Compare
Size Change: -59 B (-0.08%) Total Size: 78.4 kB
ℹ️ View Unchanged
|
da6d806
to
2bfe8b0
Compare
948a4e4
to
091a3ab
Compare
6f8b8ef
to
0a4c379
Compare
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.
Lot of work went into this, great job!
However, I'm not in love with merging this as-is, entirely due to the state of Vitest, not any of the work here.
- It seems slower across the board
- It's an extra 100MB+ of
node_modules
& an 800MB in~/.cache/ms-playright
(tried using local Chrome install but I think that'd require different config/setup, it doesn't seem to function properly out-of-the-box) - It's a hell of a lot more dependencies
- We've had to switch to some Vitest-specific APIs. While the "lock-in" doesn't look to be too rough, we are switching from runner agnostic (or meant to be runner agnostic) tools to something that's specific & will need to be changed if we need to migrate again in the future
- We've encountered a fair number of Vitest bugs in the process of this PR
I suppose most importantly, I don't see a clear benefit to switching at the moment? It's something newer and that has some value, and we do shave a bit of config, but browser testing seems pretty well established, as are our tests, so I don't see any obvious possibilities this opens up. Karma, while deprecated, is super stable & doesn't seem to be holding us back at all.
I know Vitest's maintainers have been hard at work improving things, and with a bit of luck some of this will be addressed soon-ish, but at this particular moment it seems like a rather large regression instead of a clear improvement.
That being said, I don't want to hold this back at all; if people want this then let's go forward with it.
I agree, merging this feels like a regression, all though I am convinced that we should eventually move to a new tool because of karma being deprecated and it blocking upgrading our dependencies. I am going to explore the landscape a bit more, maybe there's a middle ground here. Ideally
This is more because
This was part of my intention, I wanted to uncover bugs so we can help the vitest people with testing browser mode as I am really looking for a community project to step into the shoes of karma.
Well, sadly, the setting doesn't work 😅 I agree with you, let's hold off on merging this, I will surface this with the vitest people so there's information sharing. |
+1 on waiting on some |
Oh fair enough, wasn't quite sure if it was sinon or vitest that was the problem there.
Huh. I thought the flag would act the exact same there. Admittedly I can't even run |
97ebbf3
to
5dc412d
Compare
5dc412d
to
2bf8e23
Compare
Requirements before merge
(done)
testsoptions
property names in tests with regards to manglepnpm test:vitest:min
work, this somehow makes two tests failtsc
to work again... Broke with bump of types/node, this is part ofpnpm lint
npm run test:mocha
playwright
npm run lint && npm run test:unit
Follow-ups
sinon
sinon-chai