Generic pytest reporter that uploads test results to the TestRelic AI cloud platform.
Project description
testrelic-pytest
Generic pytest reporter that ships your test results to the TestRelic AI cloud platform. Works with any pytest project — unit tests, API tests, integration tests — and stays out of the way when no API key is configured.
Install
pip install testrelic-pytest
The plugin auto-registers via the pytest11 entry point. Nothing to import.
Configure
export TESTRELIC_API_KEY=tr_live_...
pytest
The plugin silently no-ops when TESTRELIC_API_KEY is unset, so it is safe to
add to any project.
Options
All options can be set via CLI flag, environment variable, or a JSON file at
.testrelic/testrelic-config.json. Precedence (highest first):
CLI flag → environment → JSON file → defaults.
CLI flags use a --testrelic-pytest-* prefix so they don't collide with the
testrelic-playwright plugin if both are installed.
| CLI flag | Env var | Default | Purpose |
|---|---|---|---|
--testrelic-pytest-disable |
TESTRELIC_DISABLE=1 |
off | Force-disable the plugin. |
--testrelic-pytest-api-key VALUE |
TESTRELIC_API_KEY |
— | API key from the TestRelic dashboard. |
--testrelic-pytest-endpoint URL |
TESTRELIC_CLOUD_ENDPOINT |
https://platform.testrelic.ai/api/v1 |
Cloud base URL. |
--testrelic-pytest-upload-strategy {batch,realtime,both,none} |
TESTRELIC_UPLOAD_STRATEGY |
batch |
When to send results. |
--testrelic-pytest-quiet |
TESTRELIC_QUIET=1 |
off | Suppress banner output. |
--testrelic-pytest-run-type {smoke,regression,nightly,ci} |
TESTRELIC_RUN_TYPE |
— | Dashboard bucket. |
--testrelic-pytest-project-name NAME |
TESTRELIC_PROJECT_NAME |
git remote or pyproject name | Stable project identity. |
--testrelic-pytest-artifact-threshold-kb N |
— | 32 | Captured output beyond N KB is truncated inline. |
--testrelic-pytest-output PATH |
— | — | Optional JSON dump for debugging. |
Config file (.testrelic/testrelic-config.json)
{
"apiKey": "$TESTRELIC_API_KEY",
"endpoint": "https://platform.testrelic.ai/api/v1",
"upload": "batch",
"projectName": "my-suite",
"artifactThresholdKb": 32,
"uploadArtifacts": true,
"queueDirectory": ".testrelic/queue",
"metadata": { "team": "platform" }
}
$ENV_VAR strings are expanded against the process environment at startup.
What gets captured
For each test the plugin captures:
nodeId,file,className,testName,parametrizeId- Outcome:
passed | failed | skipped | xfailed | xpassed | error - Duration (ms) and per-phase breakdown (setup/call/teardown)
- Markers (e.g.
@pytest.mark.smoke), keywords, parametrize ids - Skip reasons and pytest warnings
- Failure tracebacks and assertion repr
- Captured stdout / stderr / caplog (inline with redaction; truncated above
--testrelic-artifact-threshold-kb, hard cap 1 MB per stream — artifact upload for large streams is planned for v0.2)
Test runs include CI metadata auto-detected from GitHub Actions, GitLab CI, Jenkins, and CircleCI, plus git branch/commit/author from the working tree.
pytest-xdist
Parallel runs via pytest-xdist (pytest -n 4) are supported out of the box.
Each worker forwards its TestReport objects through the xdist channel; only
the controller node uploads. The result is exactly one cloud run with all tests
aggregated.
Offline mode
Any upload that fails after retries is written to ~/.testrelic/queue/ as a
JSON file. Re-run later:
testrelic-pytest drain
The drainer re-authenticates with TESTRELIC_API_KEY and replays each entry to
its original endpoint.
See also
testrelic-deepeval— DeepEval / LLM evaluation bridgetestrelic-playwright— Playwright reporter for pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file testrelic_pytest-0.4.0.tar.gz.
File metadata
- Download URL: testrelic_pytest-0.4.0.tar.gz
- Upload date:
- Size: 50.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdbc2f495209cb378b2de910b10149bc3096ce712f03649169078b3a6ee53127
|
|
| MD5 |
effc16c67db724737c8e0297c4f3aa8e
|
|
| BLAKE2b-256 |
59d8d8639a230ef6e0bec14d5a90226ce75ed40c95723a48a7021eb0fa52e18e
|
Provenance
The following attestation bundles were made for testrelic_pytest-0.4.0.tar.gz:
Publisher:
publish-pytest-prod.yml on testrelic-ai/testrelic-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
testrelic_pytest-0.4.0.tar.gz -
Subject digest:
fdbc2f495209cb378b2de910b10149bc3096ce712f03649169078b3a6ee53127 - Sigstore transparency entry: 1719163099
- Sigstore integration time:
-
Permalink:
testrelic-ai/testrelic-python-sdk@f0aff5efb889a31267c2be2d9bf34b921541dc1e -
Branch / Tag:
refs/heads/prod - Owner: https://github.com/testrelic-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pytest-prod.yml@f0aff5efb889a31267c2be2d9bf34b921541dc1e -
Trigger Event:
push
-
Statement type:
File details
Details for the file testrelic_pytest-0.4.0-py3-none-any.whl.
File metadata
- Download URL: testrelic_pytest-0.4.0-py3-none-any.whl
- Upload date:
- Size: 62.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
370e04a4a27700c018c46eb9b13e76d534c07b640a846353fb31d1654c563b79
|
|
| MD5 |
54453d41bd74ceea1a72621ef51e934b
|
|
| BLAKE2b-256 |
3c7495e34e3a9d9c45c885111f973d8b5913b0a73254aff9c978428fb24305da
|
Provenance
The following attestation bundles were made for testrelic_pytest-0.4.0-py3-none-any.whl:
Publisher:
publish-pytest-prod.yml on testrelic-ai/testrelic-python-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
testrelic_pytest-0.4.0-py3-none-any.whl -
Subject digest:
370e04a4a27700c018c46eb9b13e76d534c07b640a846353fb31d1654c563b79 - Sigstore transparency entry: 1719163326
- Sigstore integration time:
-
Permalink:
testrelic-ai/testrelic-python-sdk@f0aff5efb889a31267c2be2d9bf34b921541dc1e -
Branch / Tag:
refs/heads/prod - Owner: https://github.com/testrelic-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pytest-prod.yml@f0aff5efb889a31267c2be2d9bf34b921541dc1e -
Trigger Event:
push
-
Statement type: