Skip to content

Add History tab with recent-run summaries — v0.8.0 - #164

Merged
jamesabel merged 1 commit into
masterfrom
feature/history-tab
Aug 20, 2026
Merged

Add History tab with recent-run summaries — v0.8.0#164
jamesabel merged 1 commit into
masterfrom
feature/history-tab

Conversation

@jamesabel

Copy link
Copy Markdown
Owner

Summary

Adds a History tab showing the results of recent test runs, per the request: run times, pass/fail statistics, and a list of failed tests, with the number of runs shown as a configuration option.

  • One row per run, most recent first: start time, duration, completion status (Complete / In progress), Pass / Fail / Other / Total counts, and the program-under-test version label. Failed tests appear as expandable child rows (auto-expanded when a run has failures; a user's collapse choice survives refreshes).
  • History Run Limit preference (default 10, minimum 1) on the Configuration tab controls how many runs are summarized; included in Restore Defaults.
  • run_history.py: headless per-run summarizer built on run_state (latest record per test wins).
  • PytestProcessInfoReader.query_recent_runs (output column omitted) and query_change_token (COUNT(*)/MAX(rowid)), so the per-tick refresh skips re-querying and rebuilding when nothing was written.
  • Screenshot capture script includes the new tab; README screenshots and GIF regenerated, README/CLAUDE.md tab lists updated.
  • Version bumped to 0.8.0.

Testing

  • New tests/test_run_history.py (summarizer) and tests/test_history_tab.py (tab rendering, run limit, change-token gating, expansion behavior); new reader-query tests in tests/test_db_reader.py.
  • Full suite: 459 passed. ruff check / ruff format clean; ty diagnostics unchanged (pre-existing only).

🤖 Generated with Claude Code

… tests

New History tab shows one row per recent run (start time, duration,
completion status, pass/fail/other counts, total, and program-under-test
version) with the run's failed tests as expandable child rows. Runs with
failures auto-expand; a user's collapse/expand choice survives refreshes.

- run_history.py: headless per-run summarizer built on run_state
- PytestProcessInfoReader.query_recent_runs / query_change_token: the
  change token lets the per-tick refresh skip re-querying and rebuilding
  when nothing was written
- history_run_limit preference (default 10) sets how many runs are shown,
  editable in the Configuration tab (with Restore Defaults support)
- capture_assets.py includes the new tab; README screenshots regenerated

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jamesabel
jamesabel merged commit 1ca70cb into master Aug 20, 2026
3 checks passed
@jamesabel
jamesabel deleted the feature/history-tab branch August 20, 2026 16:44
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.99248% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.44%. Comparing base (c6ba36f) to head (6a7d747).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
src/pytest_fly/db/db.py 83.33% 3 Missing ⚠️
.../pytest_fly/gui/configuration_tab/configuration.py 83.33% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #164      +/-   ##
==========================================
+ Coverage   87.22%   87.44%   +0.22%     
==========================================
  Files          68       71       +3     
  Lines        5580     5713     +133     
==========================================
+ Hits         4867     4996     +129     
- Misses        713      717       +4     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants