You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: sync install instructions — add Homebrew across all docs (#61)
* docs: add Homebrew as recommended install method in README and pub.dev README
* docs: sync install instructions — add Homebrew as recommended install method
- installation.md: full rewrite with Homebrew as Option A, pre-built binary as B, go install as C; remove build-from-source as primary method
- guide-to-flutter-e2e-testing.md: replace fake curl URL with Homebrew + go install; fix flutterprobe run → probe test; bump agent version to ^0.5.3
- flutter-test-automation.md: replace fake curl URL with go install; fix all flutterprobe run → probe test; add --dart-define=PROBE_AGENT=true to build step
Copy file name to clipboardExpand all lines: website/src/content/docs/blog/guide-to-flutter-e2e-testing.md
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,16 +35,20 @@ Three primary options exist for Flutter E2E testing:
35
35
Install the FlutterProbe CLI:
36
36
37
37
```bash
38
-
curl -sSL https://flutterprobe.dev/install | sh
38
+
# macOS + Linux (recommended)
39
+
brew tap AlphaWaveSystems/tap
40
+
brew install probe
41
+
42
+
# Or via go install (good for CI)
43
+
go install github.com/AlphaWaveSystems/flutter-probe/cmd/probe@latest
39
44
```
40
45
41
46
Add the FlutterProbe Dart agent to your app's dev dependencies:
42
47
43
48
```yaml
44
49
# pubspec.yaml
45
50
dev_dependencies:
46
-
flutter_probe_agent:
47
-
^0.5.1
51
+
flutter_probe_agent: ^0.5.3
48
52
```
49
53
50
54
Initialize the agent in your app's main function:
@@ -192,7 +196,7 @@ The `wait for` command polls the widget tree until the condition is met or the t
192
196
Configure FlutterProbe to take screenshots and capture device logs on test failure. This transforms CI failures from "test X failed" into actionable reports with visual context:
193
197
194
198
```bash
195
-
flutterprobe run --suite tests/ --screenshot-on-failure --capture-logs
199
+
probe test tests/ --screenshot-on-failure --capture-logs
The key steps are: check out the code, set up Flutter, install FlutterProbe, build the app, and run the test suite. For iOS, replace the build step with `flutter build ios --simulator --debug` and adjust the target flag.
@@ -73,10 +72,10 @@ FlutterProbe supports parallel execution via the `--shard` flag:
73
72
74
73
```bash
75
74
# Split the suite across 4 parallel shards
76
-
flutterprobe run --suite tests/ --shard 1/4 &
77
-
flutterprobe run --suite tests/ --shard 2/4 &
78
-
flutterprobe run --suite tests/ --shard 3/4 &
79
-
flutterprobe run --suite tests/ --shard 4/4 &
75
+
probe test tests/ --shard 1/4 &
76
+
probe test tests/ --shard 2/4 &
77
+
probe test tests/ --shard 3/4 &
78
+
probe test tests/ --shard 4/4 &
80
79
wait
81
80
```
82
81
@@ -89,7 +88,7 @@ jobs:
89
88
matrix:
90
89
shard: [1/4, 2/4, 3/4, 4/4]
91
90
steps:
92
-
- run: flutterprobe run --suite tests/ --shard ${{ matrix.shard }}
91
+
- run: probe test tests/ --shard ${{ matrix.shard }}
93
92
```
94
93
95
94
Four shards typically reduce a 12-minute suite to roughly 3 minutes of wall-clock time. The speedup is linear because E2E tests are independent by design — each test starts from a known app state.
@@ -137,7 +136,7 @@ Automated tests are only useful if failures are actionable. FlutterProbe generat
137
136
Reports can be output as JUnit XML for CI integration or as HTML for human review. JUnit XML integrates directly with GitHub Actions, GitLab CI, and most CI dashboards to surface test results in pull request checks.
138
137
139
138
```bash
140
-
flutterprobe run --suite tests/ --report junit --output results.xml
139
+
probe test tests/ --report junit --output results.xml
141
140
```
142
141
143
142
When a test fails in CI, the combination of the failure screenshot, the step-level log, and the device log usually provides enough context to diagnose the issue without reproducing it locally.
The `PROBE_AGENT` flag is compiled into the binary via`--dart-define`. It must be set at build time — it cannot be toggled at runtime.
73
+
The `bool.fromEnvironment` check ensures the agent is only active when built with `--dart-define=PROBE_AGENT=true`. It adds zero overhead to your production app.
0 commit comments