-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Vitest switch #4687
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
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
41d9a27 to
e6a4080
Compare
5fed9f3 to
a2dcfc6
Compare
rschristian
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.
Looks great!
marvinhagemeister
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.
LGTM, great work!
Requirements before merge
(done)testsoptionsproperty names in tests with regards to manglepnpm test:vitest:minwork, this somehow makes two tests failtscto work again... Broke with bump of types/node, this is part ofpnpm lintnpm run test:mochaplaywrightnpm run lint && npm run test:unitFollow-ups
sinonsinon-chai