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

Generating a Portable Archive for CI/CD

Enable the archive property to create a ZIP file you can publish as a pipeline artifact:

src/main/resources/properties/custom.properties
allure.generateArchive=true
allure.automaticallyOpen=false

The archive is written to allure-report-archive/ and contains a self-contained HTML report.


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@v4
with:
name: allure-report
path: allure-report-archive/

- name: Upload execution summary
if: always()
uses: actions/upload-artifact@v4
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.modefailureAttach failure trace viewer artifacts on failure, retry, or always

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