vercel / next.js

The React Framework
https://nextjs.org
MIT License
121.28k stars 25.95k forks source link

Extract slow tests to avoid wasteful start/stop #65265

Closed eps1lon closed 2 weeks ago

eps1lon commented 2 weeks ago

The extracted test started timing out in https://github.com/vercel/next.js/pull/65058. When it does, it leaves the whole test suite in a corrupted state and fails all subsequent tests.

The slow part was just immediately stopping. It also wasn't robust against test failures since the cleanup logic was in the test itself not beforeEach or afterEach.

I moved the test to a separate describe block where tests don't start with a started Next.js server. This saves time and isolates failing tests.

Closes NEXT-3280

ijjk commented 2 weeks ago

Stats from current PR

Default Build (Increase detected ⚠️)
General | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | buildDuration | 26.3s | 24.2s | N/A | | buildDurationCached | 15.3s | 12.8s | N/A | | nodeModulesSize | 360 MB | 360 MB | ✓ | | nextStartRea..uration (ms) | 766ms | 784ms | N/A |
Client Bundles (main, webpack) | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | 1103-HASH.js gzip | 31.9 kB | 31.9 kB | N/A | | 1a9f679d-HASH.js gzip | 53.5 kB | 53.5 kB | N/A | | 335-HASH.js gzip | 5.05 kB | 5.05 kB | ✓ | | 7953.HASH.js gzip | 169 B | 169 B | ✓ | | framework-HASH.js gzip | 45.2 kB | 45.2 kB | ✓ | | main-app-HASH.js gzip | 230 B | 229 B | N/A | | main-HASH.js gzip | 31.6 kB | 31.6 kB | N/A | | webpack-HASH.js gzip | 1.65 kB | 1.65 kB | N/A | | Overall change | 50.4 kB | 50.4 kB | ✓ |
Legacy Client Bundles (polyfills) | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | polyfills-HASH.js gzip | 31 kB | 31 kB | ✓ | | Overall change | 31 kB | 31 kB | ✓ |
Client Pages | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | _app-HASH.js gzip | 192 B | 193 B | N/A | | _error-HASH.js gzip | 192 B | 193 B | N/A | | amp-HASH.js gzip | 507 B | 511 B | N/A | | css-HASH.js gzip | 341 B | 343 B | N/A | | dynamic-HASH.js gzip | 2.52 kB | 2.52 kB | ✓ | | edge-ssr-HASH.js gzip | 266 B | 265 B | N/A | | head-HASH.js gzip | 362 B | 365 B | N/A | | hooks-HASH.js gzip | 392 B | 392 B | ✓ | | image-HASH.js gzip | 4.27 kB | 4.27 kB | ✓ | | index-HASH.js gzip | 268 B | 268 B | ✓ | | link-HASH.js gzip | 2.69 kB | 2.7 kB | N/A | | routerDirect..HASH.js gzip | 329 B | 328 B | N/A | | script-HASH.js gzip | 397 B | 397 B | ✓ | | withRouter-HASH.js gzip | 324 B | 324 B | ✓ | | 1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ | | Overall change | 8.27 kB | 8.27 kB | ✓ |
Client Build Manifests | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | _buildManifest.js gzip | 483 B | 484 B | N/A | | Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | index.html gzip | 527 B | 526 B | N/A | | link.html gzip | 540 B | 538 B | N/A | | withRouter.html gzip | 522 B | 521 B | N/A | | Overall change | 0 B | 0 B | ✓ |
Edge SSR bundle Size | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | edge-ssr.js gzip | 94.7 kB | 94.7 kB | N/A | | page.js gzip | 182 kB | 182 kB | N/A | | Overall change | 0 B | 0 B | ✓ |
Middleware size | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | middleware-b..fest.js gzip | 623 B | 621 B | N/A | | middleware-r..fest.js gzip | 156 B | 156 B | ✓ | | middleware.js gzip | 25.7 kB | 25.7 kB | N/A | | edge-runtime..pack.js gzip | 839 B | 839 B | ✓ | | Overall change | 995 B | 995 B | ✓ |
Next Runtimes | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | app-page-exp...dev.js gzip | 171 kB | 171 kB | ✓ | | app-page-exp..prod.js gzip | 98.7 kB | 98.7 kB | ✓ | | app-page-tur..prod.js gzip | 100 kB | 100 kB | ✓ | | app-page-tur..prod.js gzip | 94.5 kB | 94.5 kB | ✓ | | app-page.run...dev.js gzip | 157 kB | 157 kB | ✓ | | app-page.run..prod.js gzip | 93.2 kB | 93.2 kB | ✓ | | app-route-ex...dev.js gzip | 21.5 kB | 21.5 kB | ✓ | | app-route-ex..prod.js gzip | 15.2 kB | 15.2 kB | ✓ | | app-route-tu..prod.js gzip | 15.2 kB | 15.2 kB | ✓ | | app-route-tu..prod.js gzip | 15 kB | 15 kB | ✓ | | app-route.ru...dev.js gzip | 21.3 kB | 21.3 kB | ✓ | | app-route.ru..prod.js gzip | 15 kB | 15 kB | ✓ | | pages-api-tu..prod.js gzip | 9.55 kB | 9.55 kB | ✓ | | pages-api.ru...dev.js gzip | 9.82 kB | 9.82 kB | ✓ | | pages-api.ru..prod.js gzip | 9.55 kB | 9.55 kB | ✓ | | pages-turbo...prod.js gzip | 21.5 kB | 21.5 kB | ✓ | | pages.runtim...dev.js gzip | 22.1 kB | 22.1 kB | ✓ | | pages.runtim..prod.js gzip | 21.5 kB | 21.5 kB | ✓ | | server.runti..prod.js gzip | 51.6 kB | 51.6 kB | ✓ | | Overall change | 963 kB | 963 kB | ✓ |
build cache Overall increase ⚠️ | | vercel/next.js canary | vercel/next.js sebbie/slow-turbo-tst | Change | | - | - | - | - | | 0.pack gzip | 1.62 MB | 1.62 MB | N/A | | index.pack gzip | 114 kB | 114 kB | ⚠️ +460 B | | Overall change | 114 kB | 114 kB | ⚠️ +460 B |
Diff details
Diff for edge-ssr.js Diff too large to display

Commit: 98e6e9d46bfc77318606c6e9b27894f431422027