-
Notifications
You must be signed in to change notification settings - Fork 370
[CI] Speed up E2E tests #2961
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
Merged
Merged
[CI] Speed up E2E tests #2961
+452
−449
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Tests in website-ui.spec.ts share OPFS storage (saving sites, switching between sites). With fullyParallel enabled, concurrent tests were interfering with each other's saved sites. Running these tests serially while keeping cross-file parallelism. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Tests in deployment.spec.ts share a server on port 7999 (started in beforeEach, stopped in afterEach). With parallel execution, multiple tests try to bind the same port causing EADDRINUSE errors. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
With serial test files (website-ui, deployment), 4 shards caused uneven distribution where shard 4 got 0 tests and shard 3 got 40. Switching to 3 shards gives ~27 tests each. Also adding sharding to Firefox tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
adamziel
commented
Nov 28, 2025
adamziel
commented
Nov 28, 2025
| // Many tests in this file interact with OPFS storage (saving sites, switching | ||
| // between sites). OPFS is shared at the browser level, so tests must run | ||
| // serially to avoid interfering with each other's saved sites. | ||
| test.describe.configure({ mode: 'serial' }); |
Collaborator
Author
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.
@copilot Let's split all OPFS tests into a separate test file to avoid an artificially large test group
Contributor
## Motivation for the change, related issues Addresses review feedback from #2961 to split OPFS tests into a separate file to avoid an artificially large test group. ## Implementation details - Created `opfs.spec.ts` with all 9 OPFS-related tests (those checking `browserName !== 'chromium'`) - Moved `saveSiteViaModal` helper to the new file - Kept serial execution mode in `opfs.spec.ts` since OPFS storage is shared at browser level - Removed serial mode from `website-ui.spec.ts` as remaining tests don't require it ## Testing Instructions (or ideally a Blueprint) Run the E2E tests to verify both test files execute correctly: ```bash npx playwright test packages/playground/website/playwright/e2e/opfs.spec.ts npx playwright test packages/playground/website/playwright/e2e/website-ui.spec.ts ``` <!-- START COPILOT CODING AGENT TIPS --> --- 💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: adamziel <205419+adamziel@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for the change, related issues
E2E tests take ~30 minutes. Let's see how fast we can make them.
This PR:
As a result, Chromium finishes in 10-14 minutes, and Firefox in ~20 minutes (compared to ~30 minutes before this PR).