-
Notifications
You must be signed in to change notification settings - Fork 0
Development Setup
Patrick Bertsch edited this page Aug 15, 2026
·
2 revisions
| Tool | Version | Purpose | Install |
|---|---|---|---|
| Go | 1.26+ | Build the CLI | go.dev |
| Flutter | 3.19+ (tested up to 3.41) | Build apps with ProbeAgent | flutter.dev |
| Dart | 3.3+ | Included with Flutter | — |
| Tool | Platform | Purpose | Install |
|---|---|---|---|
| Android SDK | Android |
adb for device/emulator communication |
Android Studio or sdkmanager
|
| Xcode | iOS (macOS) |
xcrun simctl for simulators, xcrun devicectl for physical devices |
App Store |
| CocoaPods | iOS (macOS) | Flutter iOS dependency management | brew install cocoapods |
| Tool | Purpose | Install |
|---|---|---|
| libimobiledevice |
iproxy (USB port forwarding) + idevicesyslog (token reading) + idevice_id (device detection) |
brew install libimobiledevice |
Note:
libimobiledeviceis only needed for USB testing. WiFi testing (--host+--token) does not require it.
| Tool | Purpose | Install |
|---|---|---|
| staticcheck | Go linting (used in CI) | go install honnef.co/go/tools/cmd/staticcheck@latest |
| govulncheck | Go vulnerability scanning (used in CI) | go install golang.org/x/vuln/cmd/govulncheck@latest |
| scrcpy | Android screen recording | brew install scrcpy |
| ffmpeg | Video post-processing | brew install ffmpeg |
make build # Build probe binary -> bin/probe
make install # Install to $GOPATH/bin
make build-convert # Build probe-convert -> bin/probe-convert# Go unit tests
make test # go test ./...
go test -v -race -coverprofile=coverage.out ./...
# Single package
go test -v ./internal/parser/
go test -v -run TestName ./internal/runner/
# Dart agent tests
cd probe_agent && flutter test
# probe-convert tests
make test-convert # Unit tests
make test-convert-integration # Golden files + lint + dry-run
# E2E health check (requires emulator/simulator)
./tests/e2e_cli_params/health_check.sh# 1. Build the CLI
make build
# 2. Start an Android emulator or iOS simulator
# 3. Build your Flutter app with ProbeAgent
cd your-flutter-app
flutter run --debug --dart-define=PROBE_AGENT=true
# 4. Run tests
bin/probe test tests/ --device emulator-5554 -y -vThe health check script validates all CLI parameters against local devices:
./tests/e2e_cli_params/health_check.sh # Run all phases
./tests/e2e_cli_params/health_check.sh 1 # Offline tests only
./tests/e2e_cli_params/health_check.sh 2 # Android tests only
./tests/e2e_cli_params/health_check.sh 3 # iOS tests onlyResults are saved to tests/e2e_cli_params/results.html.
cmd/probe/ CLI entry point
internal/
cli/ Cobra commands
parser/ ProbeScript lexer + parser
runner/ Test execution engine
probelink/ WebSocket JSON-RPC client
device/ Android ADB integration
ios/ iOS simctl integration
config/ probe.yaml handling
cloud/ Cloud provider integration
report/ HTML report generation
ai/ Self-healing + test generation
visual/ Visual regression testing
plugin/ Custom command plugins
migrate/ Maestro YAML migration (legacy)
probe_agent/ Dart on-device agent
tools/probe-convert/ Multi-format test converter
website/ Documentation site (Starlight)
tests/ E2E test suites
- Go: standard
gofmt, no external linter config needed - Dart: standard
dart format - Commits: Conventional Commits format (
feat:,fix:,chore:, etc.) - No Co-Authored-By lines in commits
./scripts/release.sh 0.2.0 # Bumps VERSION, pubspec.yaml, package.json, commits, tags
git push origin main --tags # Triggers release workflow