Skip to content

How to merge results from multiple .xcresult files into a single Allure 3 report? #92

Description

@danmir

Hi,

With Allure 2, my CI workflow for multi-shard iOS test runs was:

  • Convert each shard's .xcresult to raw allure-results using xcresults export:
    • xcresults export shard_0.xcresult -o allure-results-0
    • xcresults export shard_1.xcresult -o allure-results-1
  • Merge all raw results into a single report:
    • allure generate allure-results-0 allure-results-1 -o combined-report

With Allure 3, allure generate reads .xcresult natively, which is great. But it produces a final report in one step. I can't find a way to combine results from multiple .xcresult files (from parallel test shards) into a single merged report.

What I've tried:

  • Passing multiple directories to allure generate. Only accepts a single glob pattern
  • Using a glob like "./shard_*" - fails with error parsing summary.json TypeError: parsed is not iterable (the cucumber JSON reader tries to parse non-result files)
  • Pointing at the internal data/test-results directories from already-generated reports. Same parsing errors
  • --dump flag — requires archives created by allure run --stage, which doesn't apply to my case

What I'm looking for:

  • Is there a way to convert .xcresult → raw allure-results format without generating the final report (equivalent to xcresults export)? This would let me collect results from all shards and then run allure generate once.
    Alternatively, is there a supported way to merge multiple .xcresult files into one Allure 3 report?

Environment: Allure 3 (installed globally via npm), macOS, Xcode test results from 4 parallel shards.

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions