Piszę sobie testy do aplikacji webowej w mocha, i mam kilka z nich które stawiają przeglądarkę na selenium żeby przetestować niektóre elementy w runtime (bo nie da się ich przetestować bez tego).
Testy są super, napisałem je, działają super, trwają około 200ms każdy, ale mam ich teraz około 40, i wykonują się podejrzanie długo, i ten czas będzie rosnąć.
Dzieje się tak dlatego że dla każdego suite'a stawiam i kładę driver od nowa. Stwierdziłem że mógłbym przyspieszyć testy gdybym używał wspólnego driver'a dla wszystkich testów, i jakoś wyczyścić state (np załadować about:blank
i usunąć local storage), myślę że byłoby to szybsze.
Tylko właśnie, przejechałem dokumentację mochi i nie widzę żadnego default sposobu żeby współdzielić zasoby. Jedyne co mi przychodzi do głowy to setup()
i teardown()
w roocie testów, i odczytanie zmiennej globalnej. Macie jakieś inne pomysły?
W sumie tak na prawdę to jedyny problem jaki mam, to jak wyczaić moment kiedy wszystkie testy się skończyły żeby finalnie zamknać driver. Chyba trzeba dodać suiteTeardown()
w roocie.
bun test
robisz. W Node.js też jest test runner, ale ten z Node.js ma jakieś gorsze komunikaty.npm install
"i już", scaffold, etc.), ale już po tygodniu potrafią przeszkadzać bardziej niż pomagają.Bun is designed as a drop-in replacement for Node.js. It natively implements hundreds of Node.js and Web APIs, including fs, path, Buffer and more.
https://bun.sh/ chociaż nie jestem pewien, do jakiego stopnia. Ja używam bun bardziej do szybkiego odpalenia czegoś, właśnie jako zamiennik tego, co normalnie bym zrobił w Node.js.