XCTestHTMLReport

Xcode-like HTML report for Unit and UI Tests

743
126
Swift

GitHub Workflow Status
Codecov
Sonar Violations (long format)


title

What is it?

Xcode-like HTML report for Unit and UI Tests

screenshot

Features

  • Supports parallel testing
  • Supports attachments:
    • .png
    • .jpeg
    • .heic
    • .txt
    • .log
    • .mp4
    • .gif
  • Navigate through the report with the keyboard’s arrow keys
  • Filter out successful, failed, skipped, or mixed-result tests
  • Displays information about the target device
  • Displays activity logs
  • Junit report(-j flag)
  • Json report(--json flag)
  • Shrink bundle size by removing unattached files
  • Automatically convert heic images to browser-friendly format
  • Render as a single html file with inline attachments or as a bundle
  • Downsize image attachments

Installation

Homebrew (recommended)

Install via Homebrew

Install latest stable version

brew install xctesthtmlreport

Install latest from main branch

brew install xctesthtmlreport --HEAD

Mint

Install via Mint

Install latest stable version

mint install XCTestHTMLReport/XCTestHTMLReport

Install latest from main branch

mint install XCTestHTMLReport/XCTestHTMLReport@main

Usage

Run your UI tests using xcodebuild without forgetting to specify the resultBundlePath

$ xcodebuild test -workspace XCTestHTMLReport.xcworkspace -scheme SampleApp -destination 'platform=iOS Simulator,name=iPhone 14,OS=16.0' -resultBundlePath TestResults

Then use the previously downloaded xchtmlreport tool to create the HTML report. Additionally, -i flag is also available to inline all resources, this is convenient for exporting the html file standalone. HTML file will be much heavier but much more portable.

$ xchtmlreport TestResults.xcresult

Report successfully created at ./index.html

Multiple Result Bundle Path

$ xchtmlreport TestResults1 TestResults2

Report successfully created at ./index.html

This will create only one HTML Report in the path you passed with the -r option

Generate Junit Reports

You can generate junit reports with the -j flag

$ xchtmlreport -j TestResults1

Report successfully created at ./index.html

JUnit report successfully created at report.junit

Generate JSON Reports

You can generate json reports with the --json flag

$ xchtmlreport -json TestResults1

Report successfully created at ./index.html

JSON report successfully created at ./report.json

Fastlane Support

https://github.com/TitouanVanBelle/fastlane-plugin-xchtmlreport

Contribution

Please create an issue whenever you find an issue or think a feature could be a good addition to XCTestHTMLReport. Always make sure to follow the Contributing Guidelines. Feel free to take a shot at these issues.

Special Thanks

Thank you to the original author of this tool, TitouanVanBelle! 🥳🎉

License

XCTestHTMLReport is available under the MIT license.