Scenarios
*
✗ build active users query (0.01s)
✔ given a query builder (0.00s)
✔ when building active user query (0.01s)
✗ then it should match expected SQL (0.00s)
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /app/tests/build_user_queries.py:27 in build_active_users_query │
│ │
│ 24 │
│ 25 query = user_query_builder.active_only().build() │
│ 26 │
│ ❱ 27 assert query == """SELECT u.id, u.name, u.email, u.created_at, u │
│ 28 │
╰──────────────────────────────────────────────────────────────────────────────╯
AssertionError
>>> assert actual == expected
- "SELECT u.id, u.name, u.email, u.created_at, u.updated_at FROM users u LEFT JOIN preferences p ON u.id = p.user
+ "SELECT u.id, u.name, email, u.created_at, u.updated_at FROM users u LEFT JOIN preferences p ON u.id = p.user_i
# --seed 9bcc2e2b-9281-4537-9e10-e7f6244c7d0e
# 1 scenario, 0 passed, 1 failed, 0 skipped (0.01s)
See exactly what changed with character-level highlighting. No more squinting at walls of text to spot the difference between expected and actual values.
Get just the right amount of information. Vedro shows you the failing assertion with surrounding context, not overwhelming stack dumps.
Watch your test execution flow with clear step names and timing. Know exactly where things went wrong and how long each step took.
Monitor test execution with live progress indicators. See which tests are running, passing, or failing as it happens, not after everything completes.