Skip to content

Automated Test Runs

3 min read

A test run in Hawzu is either manual or automated. A manual run is worked through by testers who record each result by hand. An automated run delegates the work to a CI/CD pipeline: Hawzu starts the build, watches it, downloads the report it produced, and maps each result back onto the test cases in your repository.

Hawzu is not trying to be a CI/CD platform. Your pipeline still builds, deploys, and runs the tests. Hawzu treats it as an execution engine and its report as the source of truth — nothing reads your repository or makes assumptions about Playwright, pytest, Selenium, or TestNG.


Every automated run follows the same path, whichever provider it uses.

  1. Trigger — Hawzu asks the provider to start a build, or you point the run at a build that already ran.
  2. Watch — Hawzu polls the provider until the build finishes.
  3. Download — Hawzu fetches the build’s artifacts.
  4. Parse — Hawzu detects the report format and reads the results out of it.
  5. Map — each result is matched to a test case and recorded as an execution result.

Each stage is reported separately, so a build whose tests failed reads differently from a build whose report Hawzu could not read. See Watch a Build for the full state list.


ProviderWhat Hawzu runs
JenkinsA job
GitHub ActionsA workflow on a branch
GitLab CIA pipeline on a branch

Support is provider-agnostic by design, but only these three have adapters today. Azure DevOps, CircleCI, and Bitbucket Pipelines can still send results to Hawzu — see Pipelines That Run on Their Own and Importing CI Results.


  • A workspace integration for the provider, with the CI capability turned on — Actions for GitHub, Pipelines for GitLab. Jenkins integrations are CI-only. See Connect a CI Provider.
  • A pipeline that emits a report in one of the supported formats.
  • A way for Hawzu to tell which test case each result belongs to. See How Results Map to Test Cases.

The choice matters, because it decides what the run can tell you.

The report defines the run. Create the run and let the pipeline fill it. Any result naming a test case code that exists in your repository is adopted into the run. Zero setup, and ideal when a pipeline simply wants its results recorded.

The trade-off: the run’s scope is whatever the pipeline happened to contain, so it can never tell you what your automation doesn’t cover.

You define the run. Add the test cases the pipeline is meant to cover before the build runs. Cases the report never mentions are left Not Executed — and that is real signal. It is the gap between what you meant to automate and what actually ran.


Everything above is Hawzu pulling from your CI. If your pipelines already run on their own schedule, they can push to Hawzu instead: