Class ShardMerger

java.lang.Object
com.shaft.doctor.shard.ShardMerger

public final class ShardMerger extends Object
Merges N per-shard blobs (raw Allure results + optional traces + optional doctor ExecutionIntelligence) produced by independent -Dshaft.shard=N/M runs into one Allure result set plus a timeline "speedboard" HTML and a cross-shard flaky-clustering summary.

Merging raw Allure results is simple file union: every *-result.json/ *-container.json/attachment file is already independently UUID-named by the Allure writer, so shards never collide on filename and the merge is a plain copy, not a JSON-level merge. Flaky clustering groups merged results by fullName and flags any test observed with both a passed and a failed/broken outcome across the merged set -- Playwright's merge-reports has no equivalent failure intelligence.

  • Method Details

    • merge

      public static MergedReport merge(List<Path> shardRoots, Path outputDirectory)
      Merges the given shard blob directories into outputDirectory.
      Parameters:
      shardRoots - shard blob root directories, in merge order
      outputDirectory - destination directory; created if absent
      Returns:
      merge outcome (paths, counts, flaky clusters, warnings)