-
Notifications
You must be signed in to change notification settings - Fork 167
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
Measure flakiness of new tests #3541
Comments
I think there are two kinds of flakiness.
While I believe we can measure flakiness on the second option, the first one should be very hard to reproduce. AFAIK most of our flaky tests are related to the first type of flakiness. |
Really? So then there are lots of tests marked as flaky where there’s nothing wrong with the test itself, it just happened to get marked flaky during a rough patch in the life of the machine running our test suite? If so, wouldn’t the solution there be to improve the environment itself? Like rather than long-running machines that need rebooting and so on, run our tests within Docker containers or EC2 instances that are created just for each run and then discarded. Or at least have some kind of automatic maintenance on the machines, like automatically restart them every few hours or automatically clear their disk space after each run, something along those lines. |
Well, I haven't looked at the tests marked as flaky (some of them are quite old), I'm speaking based on my experience handling some PRs, and that might not be an assertive statement.
Possibly. As a non-build team member, I may lack some context, but I assume it will require upgrading machines and increasing nodes - both come with a cost and need someone to champion. I will wait for someone from the build team to jump in and correct me if I'm wrong. |
I would love if you’re right: it’s much easier to just increase machines’ capacity than it is to refactor tests. |
As discussed in nodejs/TSC#1457, could we somehow have a way for CI to measure the flakiness of new tests before they land? Something like:
main
).measure-flakiness
on them.This obviously won’t help for existing flaky tests, but I would think that it should prevent most new flaky tests from landing on
main
; and it would highly motivate contributors to improve their tests, because their PRs would be blocked from landing until they did so.It also wouldn’t help if a test becomes flaky because of changes to the API that it tests after the test has landed. But still, I think this is better than the status quo.
Related: #3056 cc @nodejs/tsc
The text was updated successfully, but these errors were encountered: