How eroshenkoam/xcresults works
xcresults is a CLI that reads Xcode .xcresult bundles and exports test summaries and attachments, primarily as Allure 2 results. The principal flow is command dispatch, xcresulttool extraction, formatting, attachment export, and optional post-processing. The README also documents JSON export and Allure report generation. Source excerpts show the optional broken-test and screenshot-carousel processors; some formatter and CLI details are only supported by the SOURCE INDEX, so unsampled relationships are omitted.
Main entry points: ExportProcessor.java Bundle Extraction · CarouselPostProcessor.java Screenshot Carousel · Allure2ExportFormatter.java Allure Formatter · BrokenPostProcessor.java Broken Test Rules
Components 24
CLI
- Application Entry
src/main/java/io/eroshenkoam/xcresults/XCResults.java - Command Routing
src/main/java/io/eroshenkoam/xcresults/MainCommand.java - Export Options
src/main/java/io/eroshenkoam/xcresults/export/ExportCommand.java
Result Export
- Bundle Extraction
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Allure Formatter
src/main/java/io/eroshenkoam/xcresults/export/Allure2ExportFormatter.java - JSON Formatter
src/main/java/io/eroshenkoam/xcresults/export/JsonExportFormatter.java - Formatter Contract
src/main/java/io/eroshenkoam/xcresults/export/ExportFormatter.java - Export Metadata
src/main/java/io/eroshenkoam/xcresults/export/ExportMeta.java
Post-processing
- Post-process Contract
src/main/java/io/eroshenkoam/xcresults/export/ExportPostProcessor.java - Broken Test Rules
src/main/java/io/eroshenkoam/xcresults/broken/BrokenPostProcessor.java - Matcher Configuration
src/main/java/io/eroshenkoam/xcresults/broken/BrokenConfig.java - Status Matcher
src/main/java/io/eroshenkoam/xcresults/broken/BrokenStatusMatcher.java - Screenshot Carousel
src/main/java/io/eroshenkoam/xcresults/carousel/CarouselPostProcessor.java - Carousel Model
src/main/java/io/eroshenkoam/xcresults/carousel/Carousel.java - Carousel Image
src/main/java/io/eroshenkoam/xcresults/carousel/CarouselImage.java - Carousel Template
src/main/resources/templates/carousel.ftl
Utilities
- Template Rendering
src/main/java/io/eroshenkoam/xcresults/util/FreemarkerUtil.java - Format Helpers
src/main/java/io/eroshenkoam/xcresults/util/FormatUtil.java - Process Helpers
src/main/java/io/eroshenkoam/xcresults/util/ProcessUtil.java
Other components
- CLI User
- XCResult Bundle
- xcresulttool
- sips Converter
- Allure Report CLI
Connections 29
- CLI User → Application Entry: runs
README.md - Application Entry → Command Routing: creates command
src/main/java/io/eroshenkoam/xcresults/XCResults.java - Command Routing → Export Options: routes export
src/main/java/io/eroshenkoam/xcresults/MainCommand.java - CLI User → Export Options: supplies bundle
README.md - Export Options → Bundle Extraction: starts export
src/main/java/io/eroshenkoam/xcresults/export/ExportCommand.java - Bundle Extraction → XCResult Bundle: reads results
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Bundle Extraction → xcresulttool: invokes
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Bundle Extraction → sips Converter: converts images
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Bundle Extraction → Allure Formatter: uses formatter
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Bundle Extraction → JSON Formatter: supports format
- Bundle Extraction → Export Metadata: builds metadata
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Allure Formatter → Formatter Contract: implements
src/main/java/io/eroshenkoam/xcresults/export/ExportFormatter.java - JSON Formatter → Formatter Contract: implements
src/main/java/io/eroshenkoam/xcresults/export/JsonExportFormatter.java - Allure Formatter → Export Metadata: formats with
src/main/java/io/eroshenkoam/xcresults/export/Allure2ExportFormatter.java - Bundle Extraction → Post-process Contract: runs processors
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Bundle Extraction → Broken Test Rules: registers optional
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Bundle Extraction → Screenshot Carousel: registers optional
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Broken Test Rules → Post-process Contract: implements
src/main/java/io/eroshenkoam/xcresults/broken/BrokenPostProcessor.java - Broken Test Rules → Matcher Configuration: reads rules
src/main/java/io/eroshenkoam/xcresults/broken/BrokenPostProcessor.java - Matcher Configuration → Status Matcher: contains matchers
src/main/java/io/eroshenkoam/xcresults/broken/BrokenConfig.java - Screenshot Carousel → Post-process Contract: implements
src/main/java/io/eroshenkoam/xcresults/carousel/CarouselPostProcessor.java - Screenshot Carousel → Carousel Model: creates model
src/main/java/io/eroshenkoam/xcresults/carousel/CarouselPostProcessor.java - Carousel Model → Carousel Image: holds images
src/main/java/io/eroshenkoam/xcresults/carousel/Carousel.java - Screenshot Carousel → Template Rendering: renders template
src/main/java/io/eroshenkoam/xcresults/carousel/CarouselPostProcessor.java - Template Rendering → Carousel Template: loads
- Screenshot Carousel → Format Helpers: names attachment
src/main/java/io/eroshenkoam/xcresults/carousel/CarouselPostProcessor.java - Allure Formatter → Format Helpers: uses helpers
src/main/java/io/eroshenkoam/xcresults/export/Allure2ExportFormatter.java - Bundle Extraction → Process Helpers: uses helpers
src/main/java/io/eroshenkoam/xcresults/export/ExportProcessor.java - Allure Report CLI → CLI User: serves report
README.md