An iOS integration testing framework that combines Objective-C test writing with UIAutomation's simulation power.
Subliminal is an iOS integration testing framework that allows developers to write tests in Objective-C while utilizing Apple's UIAutomation framework for simulating user interactions. It solves the problem of cumbersome UIAutomation workflows by providing a familiar XCTest-like interface and enabling direct manipulation of the application's state.
iOS developers and QA engineers who need to write robust, scalable integration tests for iOS applications, particularly those requiring simulation of complex user and device interactions.
Developers choose Subliminal because it uniquely combines the convenience of Objective-C test writing with the power and accuracy of UIAutomation, avoiding private API hacks and offering better toolchain integration than pure UIAutomation-based solutions.
An understated approach to iOS integration testing.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tests are written in Objective-C with an XCTest-like syntax, allowing seamless use within Xcode and existing toolchains, as emphasized in the README for familiar development workflows.
Leverages Apple's UIAutomation to simulate complex user and device interactions, such as in-app purchase dialogs, without resorting to private APIs, ensuring accurate simulation.
Provides a mechanism for tests to directly access and modify the application's internal state, enabling more comprehensive testing beyond UI simulation, as shown in the sample test code.
Rewrites Instruments' output with human-friendly formatting and ANSI colors, and fixes bugs in UIAutomation and the instruments CLI tool, improving debuggability and reliability.
The project's last major update was in 2014, with support only up to iOS 7.x, making it incompatible with modern iOS versions and likely unsupported, as indicated in the requirements section.
Requires tests to be written in Objective-C, which is a significant barrier for teams fully migrated to Swift or preferring Swift for new development, with no Swift support mentioned.
Installation involves cloning the repository, running Rake tasks, and manual configuration in Xcode, which is more cumbersome than modern dependency managers like CocoaPods or Swift Package Manager.