Skip to main content

pytest-glow-report 0.1.3: Reports That Preserve the Test Result

Correct phase accounting, async step reporting, and clear online/offline behavior for pytest and unittest reports.

2 min read
pytest-glow-report 0.1.3: Reports That Preserve the Test Result
On this page

Release checked September 5, 2026
This article now reflects v0.1.3 and the documented behavior of that project. Existing URLs are preserved so older links continue to work.

A useful test report should explain failures without changing what the runner considers a failure. The latest release hardens report lifecycle and rendering, fixes async step reporting, and documents the difference between an offline-readable file and its online interactive enhancements.

One test, one result

The pytest integration accounts for setup, call, and teardown failures in one test result. The unittest wrapper preserves the runner’s exit status and records failures, errors, skips, subtests, expected failures, and unexpected successes. Report styling must never turn a failed run into a passing command.

bash
python -m pip install "pytest-glow-report[pytest]==0.1.3"
pytest
# Open reports/report.html; JSON and history are in the same directory.

Attach evidence during the test

python
from beautiful_report import report

@report.step('Open login page')
def open_login(driver):
    driver.get('https://test.example.com/login')

def test_login_title(driver):
    open_login(driver)
    report.screenshot('login page', driver=driver)
    assert 'Sign in' in driver.title

The example assumes your suite provides a driver fixture. Context API calls attach to a report only during an active test. Synchronous and asynchronous step decorators record duration and status, then re-raise exceptions so the runner sees the failure.

Offline readability and interactive enhancements

HTML reports have fallback styling for offline reading. Full styling and interactive filtering use Tailwind CSS and Alpine.js from public CDNs, so those enhancements need network access. The report is a file you can share, but it is not a fully dependency-free offline dashboard.

Control report output in CI

bash
pytest --report-dir=artifacts/glow
# Disable only when intentionally running without this report:
pytest --no-glow-report
# unittest uses the installed wrapper:
glow-report run -- unittest discover -s tests

Upload reports even when tests fail. Preserve the report directory if you want history across runs; a new ephemeral directory cannot contain earlier SQLite history. Avoid multiple workers or jobs writing the same report directory unless your integration explicitly coordinates them.

A score is not release approval

A summary score reflects recorded test outcomes. It cannot measure unknown requirements, missing tests, unobserved failures, or the business impact of a defect. Use it to navigate evidence and trends, then make release decisions with coverage and risk in view.

Inspect the portfolio project proof and the repository’s current configuration guide for supported hooks and environment variables.

Current project documentation

Dhiraj Das

About the Author

Dhiraj Das is an Automation Consultant with over a decade of experience building systems that expose failures, reduce flakiness, and make complex workflows repeatable. He applies that discipline to AI-agent validation, LLM testing, and postmortems.

He shares small open source utilities from real automation work, including: waitless (flaky tests), sb-stealth-wrapper (bot detection), selenium-teleport (state persistence), selenium-chatbot-test (AI chatbot testing), lumos-shadowdom (Shadow DOM), and visual-guard (visual regression).

Share this article: