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/Automatically captured on validation and failure
VideosGenerated under video.folder, attached inside allure-results/When videoParams_recordVideo=true
Animated GIFsGenerated under video.folder, attached inside allure-results/When createAnimatedGif=true
Failure trace viewerAttached inside allure-results/SHAFT Trace Report.html, shaft-trace.json, and shaft-trace.zip on failed tests by default
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 attached at each validation point
  • 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
screenshotParams_whenToTakeAScreenshotValidationPointsOnlyAlways, ValidationPointsOnly, FailuresOnly, or Never; default attaches validation checkpoint screenshots only
videoParams_recordVideofalseRecord video of each test session
createAnimatedGiffalseCreate an animated GIF; retry attempts can enable it 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.