-
Notifications
You must be signed in to change notification settings - Fork 0
Development Setup
pbertsch edited this page Mar 21, 2026
·
1 revision
- Go 1.23+
- Dart 3.3+ / Flutter 3.19+
- Android SDK with
adbin PATH - Xcode with
xcrun simctl(macOS only, for iOS testing)
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