Gray box end-to-end testing and automation framework for React Native mobile apps.
Detox is a gray box end-to-end testing and automation framework for mobile apps, specifically designed for React Native applications on Android and iOS. It tackles flakiness in E2E tests by moving from black box to gray box testing, monitoring asynchronous operations to ensure deterministic and reliable test execution. The framework enables high-velocity native mobile development by supporting continuous integration workflows and reducing reliance on manual QA.
Mobile developers and teams building React Native apps who need reliable, automated end-to-end tests that run on real devices or simulators. It is particularly suited for developers implementing CI/CD pipelines who want to reduce flaky tests.
Developers choose Detox over alternatives because it directly addresses flakiness through automatic synchronization of asynchronous operations, providing deterministic tests. Its gray box approach, modern async-await API for debuggability, and seamless CI integration offer a more reliable and efficient testing solution compared to traditional black box E2E frameworks.
Gray box end-to-end testing and automation framework for mobile apps
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements gray box testing with synchronization of asynchronous operations, ensuring tests are deterministic and reliable by monitoring app activities.
Built for continuous integration workflows, with out-of-the-box support for platforms like Travis CI and Circle CI, reducing configuration overhead.
Uses async-await syntax that allows breakpoints in asynchronous tests to work as expected, making debugging more straightforward.
Write tests once in JavaScript for both Android and iOS React Native apps, simplifying the testing process across platforms.
Officially supports only RN v0.77.x to v0.83.x, and newer versions may not be thoroughly tested, leading to potential compatibility issues.
As admitted in the README, running tests on real iOS devices is 'not yet supported,' limiting testing to simulators for iOS.
References a React Native issue causing visibility edge-cases on Android, which can impact test accuracy and reliability.