Skip to main content

Pytest GitHub Report

This is an example of how we can use GitHub reports with pytest to generate a nice markdown matrix of results. The tests here are from the pytest-md-report repository.

Usage

Local

First, install dependencies:

$ pip install -r requirements.txt

And then run tests to see the markdown output (that will get piped into GitHub):

$ pytest --github-report tests/

This markdown output is provided via pytest-md-report and you can see other ways to customize it there!

GitHub Actions

To make this work in GitHub actions, it's actually very simple! You can either run the same command:

  - name: Report via Command Line
    run: pytest --github-report tests

Or export via the environment (e.g., good if you don't want to change your default testing command but want it to work during GitHub actions).

  - name: Report via Environment
    env:
      pytest_github_report: true
    run: pytest tests

Configuration

Advanced configuration can be done via the environment since we are scoping to GitHub actions.

Enable

If you want to have the report work from the environment (ideal if you don't want to change the command to run your tests) you can do:

export pytest_github_report=true

If that value is found with any none Null value (e.g., True or yes) a report will be generated given this module is installed.

Title

To set a particular title for your report:

  - name: Report via Environment
    env:
      pytest_github_report: true
      pytest_report_title: "Formatting"
    run: pytest tests

Zeros

By default, we only show colored emojis to indicate a success or failure. To use a count (value) instead:

  - name: Report via Environment
    env:
      pytest_github_report: true
      pytest_use_zeros: true
    run: pytest tests

Blanks

Or a blank value:

  - name: Report via Environment
    env:
      pytest_github_report: true
      pytest_use_blanks: true
    run: pytest tests

Detail

By default, we output a simplified view, which is pytest_verbosity: 0. You actually have two options for verbosity: This first is the default (0), which shows a summary by file:

  - name: Report via Environment
    env:
      pytest_verbosity: 0
    run: pytest --github-report tests

Notice below that although the table shows summary by file, the output section shows both failures within the file:

img/report-simple.png

The second shows per test results (adding the function name) and adds more detail to the matrix:

  - name: Report via Environment
    env:
      pytest_verbosity: 2
    run: pytest --github-report tests

img/report-verbosity.png

In this case, the detail is on the level of the function. But either way, detail is printed below the matrix, as you can see above!

Emojis

Choose the emijos (or characters) you want for your tests! A helpful emoji guide is here.

  - name: Report via Environment
    env:
      pytest_github_report: true
      pytest_report_title: ":unicorn: Report With Custom Emojis :unicorn:"
      pytest_passed_emoji: ":green_heart:"
      pytest_failed_emoji: ":heart:"
      pytest_xpassed_emoji: ":bangbang:"
      pytest_xfailed_emoji: ":bangbang:"
      pytest_skipped_emoji: ":shipit:"
    run: pytest tests

Here is an example with the custom emojis above!

img/report-custom-emojis.png

You can see the GitHub workflow for these examples.

Thanks!

The markdown functionality here is based off of thombashi/pytest-md-report which is released under an MIT license that we credit in .github/LICENSE.

Release files for pytest-github-report 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-github-report 0.0.1
File Size Uploaded
pytest-github-report-0.0.1.tar.gz 11.5 kB Details

Release files / pytest-github-report-0.0.1.tar.gz

Download URL pytest-github-report-0.0.1.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5745c3d2ff4c06ca2ef5f043b9c924497d39dc9749e076aa2b5774afb74d8059
BLAKE2b-256 checksum
How to use checksums
4fdd48d3f50d024bef43767159bdc4b84fa931b2d42361647306b4596558be01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.12

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page