Test Runs
A test run is a named execution session that records the result of one or more test cases against a specific build, sprint, or deployment.
Create a test run
From the Test Cases page:
- Select the test cases you want to include using the checkboxes.
- Click Create Run from the bulk action menu.
- Name the run (e.g., "Sprint 24 regression — staging") and optionally set an environment label.
- Click Create.
From the API or CLI — test runs can be created and populated automatically. See Ingest and CLI.
Run statuses
| Status | Meaning |
|---|---|
PENDING | Created, not yet started |
IN_PROGRESS | Execution underway |
COMPLETED | All results recorded |
SYNCED | Results pushed to a TestOps provider |
Recording results
Inside a run, each test case row has a status selector:
| Result | Meaning |
|---|---|
PASSED | Test passed as expected |
FAILED | Test failed — defect likely |
BROKEN | Test blocked by an environment issue |
SKIPPED | Intentionally not executed |
Enriching a result
For each result you can:
- Add a comment — Note what you observed or reproduced
- Link a bug ticket — Paste a Jira or Linear URL; the ticket key is extracted automatically
- Flag for retest — Queues the test case in the Retest queue
- Upload attachments — Screenshots, logs, videos, or JSON output (PNG, JPG, MP4, WebM, ZIP — max 10 MB per file)
Automated result ingestion
Results can be pushed from CI/CD without opening the UI:
# Via the CLI
qa-hub upload --format playwright --run-name "CI #442" playwright-results.json
# Via the REST API
POST /api/v1/ingest
Tag your tests with @qa-hub('TC-001') in the test title to map CI results to existing test cases in the library.
TestOps sync
Once a run is COMPLETED, click Sync to TestOps to push results to your configured provider (Xray, TestRail). The run transitions to SYNCED.
Deleting a run
Delete a run from the run detail view. This permanently removes all associated results and attachments.