Bluepill is a tool to run iOS tests in parallel using multiple simulators.
LinkedIn created Bluepill to run its large iOS test suite in a reasonable amount of time. If you want the long story, read the blog post.
- Running tests in parallel by using multiple simulators.
- Automatically packing tests into groups.
- Running tests in headless mode to reduce memory consumption.
- Generating a junit report after each test run.
- Reporting test running stats, including test running speed and environment robustness.
- Retrying when the Simulator hangs or crashes.
It is quick and easy to start using Bluepill!
- Get bluepill binary: build from source or use our releases. You can also get the binary from Homebrew.
$ brew install bluepill- Build your app and test bundle. You must
build-for-testingif you usexcodebuildin terminal. - Run bluepill using the
.xctestrunfile generated by Xcode.
$ bluepill --xctestrun-path ./SampleAppTest_iphonesimulator10.3-x86_64.xctestrun -o ./output/Alternatively, you can use a configuration file like the one below:
{
"xctestrun-path": "./SampleAppTest_iphonesimulator10.3-x86_64.xctestrun", # Relative path or abs path
"output-dir": "./build/" # Relative path or abs path
}
And run
$ bluepill -c config.jsonA full list supported options are listed here.
The exit code of Bluepill uses bit indicators which could represent multiple exit status. Please refer to the header for meaning of each bit.
Bluepill officially supports Xcode 14.0. If you're looking for old Xcode support, please checkout the following branches:
- Xcode-10.0 | Xcode-10.1 | Xcode-10.2 | Xcode-10.3
- Xcode-11.0 | Xcode-11.1 | Xcode-11.2 | Xcode-11.3 | Xcode-11.4 | Xcode-11.5
- Xcode-12.0 | Xcode-12.2 | Xcode-12.3 | Xcode-12.4 | Xcode-12.5
- Xcode-13.0 | Xcode-13.1
If you're looking for newer Xcode version support, try using Bluepill with unsafe-skip-xcode-version-check flag but make sure your app is tested with it and the underlying risks are understood.
Bluepill was inspired by parallel iOS test and Facebook’s xctool and FBSimulatorControl. The Bluepill icon was created by Maria Iu.
If you're using Fastlane to run your tests, you're in luck! You can integrate Bluepill into your project with very little change to your existing setup. Just integrate one of the following Fastlane plugins, and you'll be on your way:
- Redpill - The most up-to-date plugin; it's is maintained by Omni and offers a full set of options to hook into Bluepill. As of this writing, Redpill is compiled against Xcode 9.1, and intended for use with CircleCI. It will be updated with newer versions of Xcode when CircleCI supports them.
- fastlane-plugin-bluepill - Last updated Nov. 7th, offers basic support for working with the Bluepill binary.
- Bluepillar - Last updated May 29th, it's the original fastlane plugin for working with Bluepill. It was inspired by this blog post.
- XBluepill - Last updated Jan 27th. It supports all Bluepill options. Thera are some differences from other plugins:
- Support Xcode 9.2
- No need to build your project before using the plugin. Builds you project by itself and put xctestrun file automatically;
- Can reset all simulators if needed (removes all current simulators and recreates default from scratch);
If you're using Bitrise.io as your CI/CD, you can start using Bluepill immediately. Just add the Bluepill Build/Test for iOS step to your existing workflow. This open source step is maintained by HealthEngineAU and supports Xcode 8.3 and later.
-
Are we able to run Xcode UI Testing bundle with Bluepill
YES, we recently added support for Xcode UI Testing bundles. Thanks to the inspiration from FBSimulatorControl. Bluepill now supports Xcode unit test bundle and UI test bundles.
-
Easiest way to get Bluepill binary?
Latest release.
-
How to test Bluepill in Xcode?
Select BPSampleApp scheme and build it first. Then you can switch back to
bluepillorbluepill-clischeme to run their tests. -
How to get Bluepill binary from source?
Run
./scripts/bluepill.sh buildto test and build Bluepill. The binary will be output in the ./build folder. -
How to test my changes to Bluepill?
Run
./scripts/bluepill.sh test. -
How to BUMP the max files and max procs to support running multiple simulators on macOS?
Check - https://blog.dekstroza.io/ulimit-shenanigans-on-osx-el-capitan/


