Skip to content

Allure

Allure Framework is an open-source test-reporting tool. It ingests test results in a standard JSON format (allure-results/*-result.json) and produces a browseable HTML dashboard with screenshots, attachments, per-step breakdowns, history, and search.

For TRACE ALM, Allure is the destination for VisionTrace’s rich per-test output (per-step screenshots, AI reasoning text, screen recordings) and the lookup target the post-processor deep-links into from each requirement’s badge in the RTM.

  • Industry standard — wide language support (allure-pytest, allure-junit, etc.) and well-known to QA professionals; an auditor or external reviewer will already recognise it
  • Rich attachments — screenshots, videos, freeform text (LLM reasoning) all attach to a specific test step; nothing else in the chain captures that
  • Open-source, self-hosted — no vendor lock-in, no third-party data plane
  • Native plug-in for pytest (allure-pytest) — VisionTrace tests emit Allure-native JSON without extra glue

Alternatives considered: ReportPortal (heavier, requires its own server), plain JUnit XML (no screenshots / step-level attachments), bespoke HTML rendering (effort + no audit familiarity). Allure won on standardness + plug-in maturity.

  • Raw results during test runs: test-results/allure-results/*-result.json (gitignored — produced fresh each run)
  • Generated dashboard HTML (in CI’s RTM artefact): regulatory-docs/output/html/allure/
  • CI installation: the system-and-rtm job in .github/workflows/pr_branch_tests.yml runs npm install -g allure-commandline and the post-processor then invokes allure generate to build the dashboard
  • Local installation (for previewing artefacts): see How to operate it

After a pytest run with --alluredir test-results/allure-results, generate the static HTML dashboard:

Terminal window
allure generate test-results/allure-results -o test-results/allure-html --clean

Then either open test-results/allure-html/index.html via a local server, or use Allure’s dev server:

Terminal window
allure serve test-results/allure-results

allure serve starts an HTTP server and opens the browser automatically. Don’t open the static index.html from the filesystem — Allure’s loader needs HTTP for asset loading.

Easiest on Windows:

Terminal window
# Via npm (Node ≥ 14 required)
npm install -g allure-commandline

Or via scoop:

Terminal window
scoop install allure

The CI runner installs it via npm.

Download bioflow-rtm-<run> from the CI run, unzip, and serve with the post-processor’s helper:

Terminal window
uv run python tools/post_processor/serve.py --dir regulatory-docs/output/html

Then open http://localhost:8000 and click any badge in the RTM — you’ll be deep-linked into the corresponding test in the bundled Allure dashboard.

  • allure-pytest is a Python dep, pinned via uv lock — version recorded in uv.lock
  • allure-commandline is installed via npm in CI, currently latest — pin to a specific version before regulated releases by adding @<version> to the npm install line in .github/workflows/pr_branch_tests.yml
  • Regulated SOUP — version pin and any bump go through the standard SOUP register procedure; Allure is in the audit-evidence path so the version used for any released RTM is part of the release record

Allure’s own documentation is at https://allurereport.org/docs/. This site does not duplicate it. Refer there for:

  • Allure’s JSON format specification
  • The allure-pytest plugin reference
  • CLI options for allure generate / allure serve
  • History trend / categorisation features (we don’t currently use them but they’re available)

For how Allure fits into the post-processor’s badge / deep-link mechanism, see the post-processor page.