Skip to main content

pytest-cloudreport

PyPI Python License: MIT

Pass-rate trends, flaky-test detection, and duration tracking for your pytest suite — straight from pytest, no CI plugin, no YAML edits.

pip install pytest-cloudreport
pytest --cloudreport-local

Opens a self-contained cloudreport.html in your browser. No signup. No account. Nothing leaves your machine.

When you want history to survive across CI runs and developer laptops, point the plugin at cloudreport.dev and every pytest invocation uploads automatically.


Why pytest-cloudreport

Every pytest suite past ~50 tests develops the same three problems:

  • Flaky tests that fail once a week. Impossible to spot from one CI log.
  • Runs that quietly get slower. Until CI crawls and nobody knows which tests to blame.
  • No memory across machines. Your local run, your coworker's run, and the last CI run all vanish the moment the process exits.

pytest-cloudreport records every run so the patterns show up on their own.


What you get

Local (free, no account) Hosted — cloudreport.dev
Self-contained HTML report ✅ ✅
Pass / fail / skip counts, durations, tracebacks ✅ ✅
10-run trend chart ✅ with --accumulate ✅
Persistent history across CI + developer machines — ✅
Flaky test detection across runs — ✅
Branch / commit / CI provider auto-tracking — ✅
Team dashboards — ✅
Web UI + JSON API — ✅

30-second start

Local, no account

pip install pytest-cloudreport
pytest --cloudreport-local

Writes cloudreport.html and opens it. Everything stays on your machine.

Want trend charts across your last 10 runs?

pytest --cloudreport-local --accumulate

Each run is appended to ~/.pytest-cloudreport/history.db.

Hosted — cloudreport.dev

Every new account starts on the Free tier — no credit card required.

  1. Sign up at cloudreport.dev — a default project and API key are created immediately.
  2. export PYTEST_CLOUD_API_KEY=pcr_your_key_here
    
  3. pytest
    

Runs appear on the dashboard within seconds. No CI plugin install. No GitHub App. No YAML edits beyond exporting the key.


CI, out of the box

GitHub Actions, GitLab CI, Jenkins, and CircleCI are auto-detected — branch, commit SHA, and run ID are captured with zero configuration.

- uses: actions/checkout@v4
- uses: actions/setup-python@v5
  with: { python-version: "3.12" }
- run: pip install -r requirements.txt pytest-cloudreport
- run: pytest
  env:
    PYTEST_CLOUD_API_KEY: ${{ secrets.PYTEST_CLOUD_API_KEY }}

The upload runs in a background thread with a 25-second timeout — your build never waits for analytics, and never fails because of them.


Configuration

Values come from environment variables or pytest.ini. Environment wins.

Env var pytest.ini Default What it does
PYTEST_CLOUD_API_KEY cloudreport_api_key — Project API key. Setting this auto-enables cloud upload.
PYTEST_CLOUD_API_URL cloudreport_api_url Production backend Override for self-hosted or preview deployments.
PYTEST_CLOUD_ENV cloudreport_environment ci Environment label attached to every run.

CLI flags

  • --cloudreport-local — generate a self-contained HTML report. No API key required. If a key is also configured, the run uploads to the cloud in the same invocation.
  • --accumulate — with --cloudreport-local, append the run to the local history DB so the HTML report shows trends.
  • --cloudreport — force-enable cloud upload even without PYTEST_CLOUD_API_KEY set (warns if the key is missing so failures aren't silent).
  • --cloudreport-verbose — print upload status (or error) to stdout.

Pricing

Free during early access. Paid pricing launches with 6 months free for early adopters on any plan.

Free Starter Pro
Price $0 $24/month $99/month
Projects 1 10 Unlimited
Tests per day 5,000 100,000 300,000
History retention 7 days 6 months 1 year
Flaky test detection ✅ ✅ ✅
CI provider auto-detect ✅ ✅ ✅
GitHub Action ✅ ✅ ✅
Team members 1 10 Unlimited
Priority support — ✅ ✅

Setup is identical across all tiers — same plugin, same API key.


Privacy

Sent to the server: test names, statuses, durations, assertion messages, tracebacks. Never sent: source code, test fixtures, environment variables, or stdout/stderr captured during the run.


Zero runtime dependencies

The plugin depends only on pytest and jinja2. No SDK, no telemetry library, no background daemon. Uploads use the Python standard library over plain HTTPS.


Support

License

MIT. See LICENSE.

Metadata

Release files for pytest-cloudreport 0.3.0

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-cloudreport 0.3.0
File Size Uploaded Provenance
pytest_cloudreport-0.3.0.tar.gz 19.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-cloudreport 0.3.0
File Interpreter ABI Platform
pytest_cloudreport-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.9 kB

Release files / pytest_cloudreport-0.3.0.tar.gz

Download URL pytest_cloudreport-0.3.0.tar.gz
Size 19.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ea709525b1208335aa95f8fd46fb056093c0fc268e0ec07d7b45a7f896f400e3
BLAKE2b-256 checksum
How to use checksums
99ac63ee13dbdfa7c173b68ecd4231bea5ab5b38010ca15e7442ce4b2f7e1a9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / pytest_cloudreport-0.3.0-py3-none-any.whl

Download URL pytest_cloudreport-0.3.0-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab59de78515524a7322470b8b607478236a4961d7ccec3d09ec61842dd8c4092
BLAKE2b-256 checksum
How to use checksums
8ca651c3f19163b90e879342efb9b156b6dd0e331d77f9a2df006378a856bfab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Security for pytest-cloudreport 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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