A tool to run iOS UI tests in parallel using multiple simulators on a single machine.
Bluepill is an open-source iOS testing tool that runs UI and unit tests in parallel across multiple simulators on a single machine. It solves the problem of slow iOS test suites by distributing tests concurrently, dramatically reducing execution time for large test suites. Originally created by LinkedIn, it integrates with Xcode's testing infrastructure and supports both headless and GUI modes.
iOS developers and QA engineers with large test suites who need to reduce test execution time, especially those using CI/CD pipelines. Teams at scale-ups or enterprises where test reliability and speed are critical.
Developers choose Bluepill for its proven ability to cut iOS test run times through parallel execution, its robustness features like automatic retry on simulator crashes, and its seamless integration with existing Xcode workflows. Unlike basic Xcode test runs, it provides advanced test packing, headless operation, and detailed reporting.
Bluepill is a reliable iOS testing tool that runs UI tests using multiple simulators on a single machine
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs tests across multiple simulators simultaneously via the `-n` flag, drastically cutting test suite execution time for large iOS projects.
Automatically retries tests on simulator crashes or hangs with configurable `-R` and `-f` flags, improving reliability in flaky CI environments.
Supports running simulators without a GUI using the `-H` flag, reducing memory consumption on headless CI/CD servers as highlighted in the features.
Generates JUnit reports and detailed statistics on test performance, providing actionable insights for test optimization and debugging.
Officially supports only specific Xcode versions (e.g., Xcode 14.0), with fragmented branches for older releases, requiring manual updates and posing compatibility risks.
Requires building for testing to generate a .xctestrun file and configuring numerous flags, which can be error-prone compared to simpler, integrated test runners.
Running multiple simulators in parallel consumes significant CPU and memory, potentially straining local machines or CI servers with limited resources.