Reports
FlutterProbe supports three output formats for test results.
Terminal (Default)
Section titled “Terminal (Default)”probe test tests/Prints colored pass/fail output to stdout.
JUnit XML
Section titled “JUnit XML”Standard format supported by GitHub Actions, Jenkins, CircleCI, and other CI systems:
probe test tests/ --format junit -o reports/results.xmlUse with dorny/test-reporter or similar actions to display results in pull request summaries.
Structured output with full test details, timings, and artifact references:
probe test tests/ --format json -o reports/results.json --videoReport Metadata
Section titled “Report Metadata”JSON reports include a metadata section for CI/CD traceability:
{ "metadata": { "device_name": "iPhone 16 Pro", "device_id": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890", "platform": "ios", "os_version": "iOS 18.6", "app_id": "com.example.myapp", "app_version": "1.2.16", "config_file": "probe.ios.yaml" }}Metadata is collected automatically: iOS version from the simulator runtime, Android version from getprop, app version from dumpsys package.
HTML Report
Section titled “HTML Report”Generate an interactive HTML dashboard from JSON results:
probe report --input reports/results.json -o reports/report.htmlprobe report --input reports/results.json -o reports/report.html --openThe HTML report displays:
- Pass/fail summary with timings
- Device and environment metadata
- Per-test details with step-by-step results
- Embedded screenshots and video playback
- Failure details with error messages
Artifact Structure
Section titled “Artifact Structure”The reports/ directory is fully self-contained and portable:
reports/ results.json # test results with relative artifact paths report.html # interactive HTML dashboard screenshots/ # failure & on-demand screenshots (PNG) failure_login_1234.png main_menu_5678.png videos/ # per-test screen recordings (H.264) login_test.mov navigation_test.movAll artifact paths are relative to the report file. The entire folder can be uploaded to CI artifact storage, S3, or shared without breaking references.
--record adds a recordings/ folder beside these files, with one bundle per test attempt and an offline HTML viewer in each. Recordings can contain screens and request bodies (credentials are redacted), so leave recordings/ out when you share or upload this folder. --upload-report never sends them. See Local step recordings.
Viewing HTML Reports
Section titled “Viewing HTML Reports”The HTML report uses relative paths for embedded media. To view with full video/screenshot support:
# Recommended: serve via HTTPcd reports && python3 -m http.server 8080# Quick view (screenshots work, videos may not in all browsers)open reports/report.htmlConfiguration
Section titled “Configuration”reports_folder: reports # default output directory
defaults: screenshots: on_failure # always | on_failure | never video: false # enable per-test video recordingThe -o flag directory takes precedence over reports_folder when specified.
Video Recording Notes
Section titled “Video Recording Notes”| Platform | Format | Codec |
|---|---|---|
| iOS Simulator | MOV | H.264 (for browser compatibility) |
| Android | MP4 | H.264 |
Install ffmpeg to stitch multi-segment Android recordings into a single file. Without it, segments are kept separate.