Repository navigation
Open
Labels
P1High-priority issues at the top of the work listHigh-priority issues at the top of the work listplatform-webWeb applications specificallyWeb applications specificallyteam-webOwned by Web platform teamOwned by Web platform teamtriaged-webTriaged by Web platform teamTriaged by Web platform team
Description
Part of #191313
Problem
Running `package:integration_test` on Flutter Web requires manual `chromedriver` daemon management on port 4444 and complex `flutter drive` scripts. `flutter test integration_test -d chrome` is currently unsupported.
Solution
- Provide a single-command CLI to run web integration tests headlessly in Chrome.
- Automate `chromedriver` startup, port allocation, and process cleanup.
- Support web renderers (`--web-renderer=canvaskit|skwasm`) and wasm compilation flags.
- Capture browser console logs and failure screenshots on error.
Critical Edge Cases & Implementation Gotchas
- Headless Flag Dropping Bug (--web-run-headless does not take effect when using flutter drive for flutter web integration_test #95085): Existing `flutter_tools` implementation in `web_driver_service.dart` drops the `webRunHeadless` flag when recreating `DebuggingOptions`. Reusing or refactoring this path must fix or preserve headless configuration.
- Hermetic Binary Resolution (Formalize how to launch chrome and chromedriver in tests #187756): Avoid searching ambiguous `$PATH` locations for ChromeDriver. Respect standard environment variable overrides (`CHROMEDRIVER_EXECUTABLE`, `CHROME_EXECUTABLE`) for deterministic local and CI runs.
- CLI Option Friction (
flutter driveoptions-dand--browser-namehave confusing behavior #67090): Disambiguate `-d chrome` vs `--browser-name=chrome`; standardize on `-d chrome` as the first-class invocation.
Related Issues & Historical Context
- [Flutter drive/integration_test] improve commands experience #97519: [Flutter drive/integration_test] improve commands experience (Direct duplicate requesting automated ChromeDriver lifecycle; close on landing)
- Support running integration tests with the Flutter Tool #66264: [web] Flutter test should support integration test on web (Close on landing if implemented in `flutter_tools`)
- --web-run-headless does not take effect when using flutter drive for flutter web integration_test #95085: --web-run-headless does not take effect when using flutter drive for flutter web integration_test
- Formalize how to launch chrome and chromedriver in tests #187756: Formalize how to launch chrome and chromedriver in tests
flutter driveoptions-dand--browser-namehave confusing behavior #67090: `flutter drive` options `-d` and `--browser-name` have confusing behavior
Metadata
Metadata
Assignees
Labels
P1High-priority issues at the top of the work listHigh-priority issues at the top of the work listplatform-webWeb applications specificallyWeb applications specificallyteam-webOwned by Web platform teamOwned by Web platform teamtriaged-webTriaged by Web platform teamTriaged by Web platform team
Activity
harryterkelsen commentedon Oct 29, 2026
Status update:
With the first three initiatives of umbrella #191313 landed (Web Engine local goldens in #191314, Framework web goldens and DPR alignment in #191371, and standalone local web benchmarks in #191316), this automated web integration test runner is the final remaining focus for the Flutter Web feedback loop project.
We are currently formalizing the technical design to address:
flutter_tools'sweb_driver_service.dart(--web-run-headless does not take effect when using flutter drive for flutter web integration_test #95085) so headless runs are reliable out of the box.CHROMEDRIVER_EXECUTABLEandCHROME_EXECUTABLEoverrides (Formalize how to launch chrome and chromedriver in tests #187756) to ensure predictable CI and local developer execution.-d chromeinvocation (flutter driveoptions-dand--browser-namehave confusing behavior #67090) and diagnostic artifact capture (console logs, JS errors, failure screenshots).Related historical issues #97519 and #66264 will be closed upon landing.