mateffy/pest-plugin-html-reports

Generate interactive HTML reports of Pest test results

1.0.0 2025-08-07 15:10 UTC

This package is auto-updated.

Last update: 2025-09-02 18:51:40 UTC


README

HTML Reports for Pest Tests

HTML Reports for Pest PHP Tests

Generate interactive HTML reports directly from your test results
to better understand and work with your test suite.

Features

  • 📊 Generate static HTML reports from Pest test results JSON
  • 🔍 Search UI to find test cases and dig deeper than you ever did before
  • 🔗 Editor deep links (PhpStorm, VS Code, Sublime Text, Vim)
  • 🐙 GitHub linking for PRs and issues (using Pest's ->todo(issue: 123) annotations)
  • 📝 Use Markdown in your test case notes (->note('Note with **bold** text'))
  • 📦 HTML report is completely self-contained in a single file (Tailwind + Alpine from CDN)

Screenshot showing an example report

View Interactive Example ⇢


What a single test case looks like

What a single test case looks like


Installation

Install the package via Composer:

composer require mateffy/pest-plugin-html-reports

Usage

Command Line

Generate a static HTML report from a test results JSON file:

php artisan test-report:generate
# With some extra options
php artisan test-report:generate \
    --input=storage/app/pest_test_results.json \
    --output=public/pest-report.html \
    --title="My Project Test Results" \
    --project-path=/path/to/your/project \
    --repository=your-username/your-repo

Environment Variables

You can configure the output directory and filename of the JSON report by setting the following environment variables:

  • TEST_REPORT_DIR: The directory where the JSON report will be saved. Defaults to storage/framework/testing/reports.
  • TEST_REPORT_FILENAME: The filename of the JSON report. Defaults to report-{{date}}-{{id}}.json. The {{date}} and {{id}} placeholders will be replaced with the current date and a unique ID.

How it works

  1. A Pest test is run
  2. A pest plugin is used to listen to the test completion event and loads the required data from the Pest internals
  3. The data is then stored as a JSON file per run in the storage/framework/testing/reports directory
  4. Depending on your configuration, a HTML report is automatically generated and also stored in the storage/framework/testing/reports directory.
  5. Later on, the artisan test-report:generate command can be used to generate a static HTML report from any of the historic JSON files

License

MIT License