A command-line tool for executing iOS tests in parallel across multiple Simulators.
pxctest is a command-line tool that executes iOS tests in parallel across multiple iOS Simulators. It addresses the need for faster test execution in CI/CD environments by running tests concurrently on different Simulator configurations, reducing overall test suite duration. The tool was particularly useful before Xcode 9 added native parallel testing support.
iOS developers and QA engineers working on large test suites who need to accelerate test execution in automated build pipelines. It's especially relevant for teams using continuous integration systems that require headless, scriptable testing.
pxctest offers a flexible, scriptable alternative to Xcode's built-in test runner, with unique features like headless testing and custom Simulator configuration. It enables parallel execution across multiple Simulator destinations, which was not natively supported in Xcode before version 9.
Execute tests in parallel on multiple iOS Simulators
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Executes tests concurrently across multiple iOS Simulator destinations, significantly reducing test suite runtimes as demonstrated in the provided screencast and usage examples.
Allows running tests without the Simulator.app GUI, preventing interference from Xcode and enabling isolated CI environments, detailed in the headless testing section with pre-boot commands.
Enables injection of custom defaults like keyboard settings via JSON files, offering fine-grained control over simulator behavior for testing, as shown in the --defaults option example.
Provides commands to pre-boot, manage, and shut down simulators in custom device sets, optimizing resource usage and avoiding conflicts with development simulators.
The README explicitly states that pxctest is deprecated in favor of Xcode 9's native parallel testing, meaning it lacks future updates, bug fixes, and official support.
Requires multiple manual steps including specific xcodebuild flags for test compilation, pre-booting simulators with device sets, and managing JSON configurations, adding overhead compared to integrated solutions.
To handle multiple simulators, it necessitates changing kernel boot arguments via nvram and installing system-wide launchd plists, which can be risky, require administrative access, and a system reboot.