Minimizing test insights overhead with server-side processing

Until now, tuist inspect test (and tuist test / tuist xcodebuild test) parsed your xcresult files locally before sending the results to the server. Starting with 4.180.0, the CLI uploads the raw xcresult to the server and lets it do the heavy lifting. This is the same approach we shipped for build insights earlier.

Why we did this

Local xcresult parsing added latency after every test run. On CI, where pipeline speed matters most, that overhead adds up. By offloading the work to the server, the CLI returns almost immediately after the upload, and your test data appears on the dashboard once the server finishes processing.

Just like with builds, this also means we can improve parsing logic, support new xcresult formats, and fix edge cases without requiring a CLI update.

What changed

  • The CLI uploads the raw xcresult archive to the server for processing instead of parsing it locally.
  • Test runs show a Processing status while the server parses the data, then transition to their final state once done.
  • For Tuist-hosted instances (tuist.dev), remote mode is now the default. Self-hosted instances default to local.
  • You can always override the default by passing --mode local or --mode remote explicitly.

Do I need to do anything?

If you’re on a Tuist-hosted instance, no. Update to 4.180.0 and remote processing kicks in automatically. If you’re self-hosted, the behavior stays the same unless you opt in with --mode remote.

If you run into anything, let us know :folded_hands: We validated this end-to-end against tuist/tuist across staging, canary, and production, but we may have missed some edge cases.

Learn more