Results and reports¶
The console¶
Every step prints as it runs: the step, how long it took, what it acted on, the actions Jev chose with their confidence, and each check.
▶ Native screen
▸ use: Sign in
✓ do: Sign in with email "${DEMO_EMAIL}" and password "${DEMO_PASSWORD}" (1.8s) — 3 action(s)
→ type "${DEMO_EMAIL}" into text_field 'Email' (confidence 0.83)
→ type "${DEMO_PASSWORD}" into password_field 'Password' (confidence 0.76)
→ tap button 'Sign in' (confidence 0.93)
→ done (confidence 0.96)
✓ expect: The home screen is showing — Jev 0.95
✓ see: Welcome, ${DEMO_EMAIL}
✓ scroll_to: Open native screen direction='down' (0.0s)
✓ tap: Open native screen (0.9s) — on button 'Open native screen'
✓ see: Native screen
✓ clear: Nickname (0.6s) — on text_field 'Guest'
✓ type: Bret into='Nickname' (0.3s) — into text_field 'Nickname'
✓ tap: Save nickname (0.3s) — on button 'SAVE NICKNAME'
✓ see: Saved: Bret
✓ tap: Dark theme (0.2s) — on switch 'Dark theme'
✓ see: Theme is dark
✓ tap: Delete account (1.2s) — on button 'DELETE ACCOUNT'
✓ expect: A dialog asks to confirm deleting the account — Jev 0.98
✓ tap: Delete (0.6s) — on button 'DELETE'
✓ see: Account deleted
PASS Native screen (8.4s)
A run ends with a summary per device: the tally, each failure with its reason, and how many Jev decisions came from the lockfile or were asked live, with the time and cost.
17/17 passed in 111s
Jev: 109 decisions, 109 from lockfile, 0 asked live in 0.0s (0% of run time), $0.0000
Results: results/20260925-205234/android/emulator-5554
And with failures (from a run during development):
12/14 passed in 104s
FAILED Swipe to delete an item: see: Item 26 deleted — not on screen
FAILED Camera permission prompt: expect: The system is asking whether to allow camera access — Jev says false (0.06)
Jev: 95 decisions, 79 from lockfile, 16 asked live in 3.3s (3% of run time), $0.0009
-v adds every Jev question with its top three answers and their probabilities.
Files¶
results/
20260925-201517/ # one folder per run
junit.xml # every file, platform and device in the run
android/
emulator-5554/
report.json
001_FAIL_Swipe_to_delete_an_item.png
ios/
iPhone_17_Pro/
report.json
When several files run, each gets its own folder first: results/<run>/checkout/android/Pixel_8/.
junit.xml¶
One <testsuite> per file, platform and device (named like jevtest.checkout.android.Pixel 8), one <testcase> per test. A failed test has a <failure> whose message is the reason (see: Item 26 deleted — not on screen) and whose body is the test's full log.
report.json¶
Everything about one device's run:
| Key | Contents |
|---|---|
file, platform, device, app, app_id, model |
what ran where |
passed, failed |
counts |
tests[] |
per test: name, status, seconds, failure, log, and steps[] |
tests[].steps[] |
per step: the step as written, status, seconds, detail, Jev's decisions with probabilities, checks[], nested steps for use:, and screenshot for the failing step |
jev_calls[] |
every Jev request: the screen as Jev saw it, the questions, the answers, whether it came from the lockfile, time and cost |
Screenshots¶
The step that fails a test gets a screenshot, named after the test. screenshot: name steps save one too.