Skip to content
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

Make tests faster by avoiding unnecessary waiting #79

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

cwalther
Copy link
Contributor

As I suspected yesterday, it seems like the tests can actually be sped up massively by avoiding hardcoded wait times: Puppeteer allows us to wait for the specific element we want to check instead of waiting for a fixed time and hoping it will be there by then. I’m not sure if there was a reason for doing it this way, but replacing the waits seems to work well for me.

This reduces the total testing time from 26s to 7s for me.

The commit is stacked on #78 because only that allowed me to get meaningful figures, but is independent and could be rebased if desired for a neater branching layout.

Running jest runs the two test suites in parallel. If both try to run a server on port 3000, only one of them will succeed and supply files for both, however when that suite finishes first, it will take down the server and leave the other one hanging. Fix this by running the servers on different ports.
Puppeteer allows us to wait for the specific element we want to check instead of waiting for a fixed time and hoping it will be there by then.

This reduces the total testing time from 26s to 7s for me.
@yanick
Copy link
Collaborator

yanick commented Sep 24, 2019

I’m not sure if there was a reason for doing it this way

No wise hidden motives there. If I recall correctly, I was trying different end-to-end testing frameworks (first Nightwatch, then the jest + puppeter combo), and didn't get around to optimize the tests. This speedup by a factor of 9 is... very welcome. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants