Documentation
TestHub — centralized test report hub for CI/CD pipelines
Overview
TestHub stores and serves Allure 3 test reports published from CI pipelines or local execution.
Reports are published using Allure 3 native publishing — set publish: true in your allure config
and run npx allure generate. Allure CLI handles everything automatically.
Static assets (~1.5 MB) are stored once per Allure version; each run uploads only dynamic data (~10-50 KB) — saving ~98% storage.
Quick Start
- Get an
ars1token from your TestHub admin (generated viaPOST /api/token) - Add
allurerc.mjsto your project root:
// allurerc.mjs
import { defineConfig } from "allure";
export default defineConfig({
name: "My Project",
plugins: {
awesome: { options: { publish: true } },
},
allureService: {
accessToken: process.env.TESTHUB_TOKEN,
},
});
- Store your token as
TESTHUB_TOKENin CI secrets (or env var locally) - Publish:
npx allure@^3 generate allure-results
The report URL is printed in the console. Reports appear in the dashboard automatically.
CI Examples
Jenkins
stage('Publish Report') {
steps {
withCredentials([string(
credentialsId: 'testhub-token',
variable: 'TESTHUB_TOKEN')]) {
bat 'npx allure@^3 generate build/allure-results'
}
}
}
GitHub Actions
- name: Publish Allure report
if: always()
env:
TESTHUB_TOKEN: ${{ secrets.TESTHUB_TOKEN }}
run: npx allure@^3 generate allure-results
How It Works
When you run npx allure generate with publish: true, Allure CLI automatically:
- Creates a draft report on TestHub
- Uploads shared static assets (JS/CSS/fonts) — skipped if already uploaded for this Allure version
- Uploads report-specific data (index.html, test results, widgets)
- Completes the report with statistics and history
The ars1 token is self-describing — it contains the server URL. No separate URL configuration needed.
Authentication
Dashboard access is protected by Cloudflare Access. Sign in with your email to view the dashboard and reports.
Report publishing uses ars1 tokens. Your admin generates these via the POST /api/token endpoint.
Store the token as TESTHUB_TOKEN in your CI secrets. The token embeds the server URL — no additional configuration needed.
Dashboard API tokens (from API Keys) are for
querying runs, apps, and history from scripts. They are not used for publishing reports.
Roles & Permissions
TestHub has four roles with configurable permissions:
| Role | Default Access |
|---|---|
| Admin | Full access. Manages users, roles, and settings. |
| Manager | Create/delete projects, jobs, runs. Manage CI providers and settings. |
| User | Create projects and jobs, dispatch test runs. Cannot delete. |
| Viewer | View-only access to dashboards and reports. |
Admins can customize per role in Settings → Role Permissions.
Troubleshooting
| Problem | Fix |
|---|---|
allure generate doesn't publish | Check publish: true in allurerc.mjs and TESTHUB_TOKEN env var |
| Unauthorized error | Token is invalid or expired. Get a new ars1 token from admin. |
| Report shows blank page | Static assets may be missing. Re-publish or check browser console for 404 errors. |
| Can't create/delete | Your role may not have permission. Ask admin to check Role Permissions. |