A dev renames a data-testid or changes a route. An hour later your Playwright suite goes red in CI and someone has to bisect why. Testward reads the pull request and tells you the exact specs it will break — at review time, before CI runs.
Playwright tests are coupled to the app through selectors, routes and visible text. That coupling is the whole point — but it means the suite breaks whenever the app changes in a way the tests didn't expect. The breakage is invisible until CI runs, and by then the dev has context-switched away.
The usual signals don't help: the PR diff is in src/, the failing test is in tests/, and nothing in code review connects the two. On teams where the Playwright suite lives in its own repo, there's no connection at all.
On every pull request, Testward:
data-testid, getByRole/getByText targets, route literals, aria-labels, ids, placeholder and visible text.Most Playwright-heavy teams keep E2E in a dedicated repo. Add a one-line config to the app repo:
# .testward.yml
automation_repos:
- your-org/e2e-playwright
Now a frontend PR in the app repo flags the Playwright specs it will break in the E2E repo — the connection no other review tool draws. See the cross-repo setup →
The best fix for a brittle suite is stable hooks. Testward recognizes the data-testid / getByTestId pattern and flags when a PR renames one a spec depends on. If you want to harden your suite first, our guide on choosing selectors that don't break walks through it.
Install Testward on your Playwright repos and get the breakage list on the PR.
Install free on GitHub