Skip to main content

Test Artifacts and Report Paths

After a test run, SHAFT generates several artifacts that you can use for debugging, reporting, and auditing. This page explains where to find them and how to publish them from your CI/CD pipeline.


Artifact Locations​

ArtifactPathDescription
Allure resultsallure-results/Raw Allure result files (JSON, attachments)
Allure reportallure-report/Generated HTML report (after generate_allure_report.sh)
Allure archiveallure-report-archive/Portable ZIP when allure.generateArchive=true
Execution summaryexecution-summary/Lightweight HTML summary report
ScreenshotsAttached inside allure-results/Captured on failures by default; validation and every-action screenshots depend on evidenceLevel or granular screenshot policy
VideosGenerated under video.folder, attached inside allure-results/When evidenceLevel=CUSTOM and videoParams_recordVideo=true, or when evidenceLevel=FULL
Animated GIFsGenerated under video.folder, attached inside allure-results/When evidenceLevel=CUSTOM and createAnimatedGif=true, when evidenceLevel=FULL, or on retry evidence capture
Failure trace viewerAttached inside allure-results/shaft-trace.zip on failed tests by default; the archive contains SHAFT Trace Report.html and shaft-trace.json
Failure briefAttached inside allure-results/SHAFT Failure Brief.html, shaft-failure-brief.json, and shaft-attachments-manifest.json on failed or broken tests
info

All paths are relative to your project root directory.


Allure Report​

The Allure report is the primary artifact from every SHAFT test run. It contains:

  • Step-by-step action logs
  • Screenshots according to the selected evidence profile
  • Video recordings and animated GIFs (when enabled)
  • Failure trace viewer attachments for failed tests
  • Failure brief and attachment manifest for first-pass triage
  • Test history and trend graphs across multiple runs
  • Environment metadata

Generating the Report Locally​

SHAFT writes convenience scripts to your project root on first run:

macOS / Linux
./generate_allure_report.sh
Windows
generate_allure_report.bat

Publishing to CI/CD​

With GitHub Actions v7+, you can upload Allure HTML files directly without archiving. See the Publishing Artifacts in CI/CD section below for examples.


Execution Summary​

The execution summary is a lightweight, fast HTML report. Enable it with:

src/main/resources/properties/custom.properties
openExecutionSummaryReportAfterExecution=true

The generated file is written to the execution-summary/ directory.


Publishing Artifacts in CI/CD​

GitHub Actions​

.github/workflows/tests.yml
- name: Upload Allure report
if: always()
uses: actions/upload-artifact@v7
with:
name: allure-report
path: allure-report/*.html
archive: false
if-no-files-found: ignore

- name: Upload execution summary
if: always()
uses: actions/upload-artifact@v7
with:
name: execution-summary
path: execution-summary/

Jenkins​

Jenkinsfile
post {
always {
archiveArtifacts artifacts: 'allure-report-archive/**', allowEmptyArchive: true
archiveArtifacts artifacts: 'execution-summary/**', allowEmptyArchive: true
}
}
tip

Always use if: always() (GitHub Actions) or post { always { } } (Jenkins) so that artifacts are uploaded even when tests fail — that is when you need them the most.


Controlling What Gets Captured​

PropertyDefaultDescription
evidenceLevelFAILURE_ONLYProfile-level evidence control. Profiles except CUSTOM override the granular controls below.
screenshotParams_whenToTakeAScreenshotValidationPointsOnlyGranular screenshot policy: Always, ValidationPointsOnly, FailuresOnly, or Never
videoParams_recordVideofalseGranular video policy
createAnimatedGiffalseGranular GIF policy; retry attempts can enable GIFs automatically
allure.generateArchivefalseGenerate a portable ZIP archive of the report
shaft.trace.modeautoTrace mode: auto (retry-aware—resolves to retry when retries are configured, otherwise failure), failure, retry, or always
shaft.trace.retainFailedAttemptstrueKeep failed-attempt trace bundles (shaft-trace-attempt-<n>.zip) when retries are enabled so a passing retry never deletes flake evidence

For the full list of reporting properties, see the Properties List.