Detox
Detox is an open-source end-to-end testing framework for React Native mobile apps that runs tests on real devices or simulators. It uses a gray box approach (accessing app internals) to eliminate flakiness and provide deterministic test execution without manual waits.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | wix/Detox |
| Owner | wix |
| Primary language | JavaScript |
| License | MIT — OSI-approved |
| Stars | 12k |
| Forks | 1.9k |
| Open issues | 197 |
| Latest release | 20.51.3 (2026-05-30) |
| Last updated | 2026-06-16 |
| Source | https://github.com/wix/Detox |
What Detox is
Detox provides JavaScript-based E2E testing for React Native (Android & iOS) with automatic synchronization of async operations, modern async-await APIs, and CI/CD integration. It monitors app state to reduce race conditions and flakiness inherent in black box mobile testing.
Get the Detox source
Clone the repository and explore it locally.
git clone https://github.com/wix/Detox.gitcd Detox# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- React Native version compatibility: officially supports v0.77.x–v0.84.x with full New Architecture support; verify your app version against the compatibility matrix before adoption.
- Device/simulator infrastructure required: tests run on actual iOS/Android simulators or devices; ensure your CI environment can provision and manage them (emulator farm or device lab).
- Test synchronization model: relies on internal app monitoring (gray box), so requires test app to expose testID attributes and async operation hooks; modifications to app code may be necessary.
- Jest integration built-in but test runner agnostic: default setup uses Jest; can integrate with other runners if needed, but Jest is the recommended path.
- Debugging experience: async-await API allows breakpoints in tests, but real device iOS testing is not yet supported; primarily simulator-focused for iOS.
When to avoid it — and what to weigh
- Non-React Native Apps — Detox is purpose-built for React Native. For native iOS/Android apps, Swift UI testing or Espresso/XCTest may be more appropriate.
- Heavy Manual Testing Requirements — If your QA process relies on exploratory or complex manual scenarios not easily scripted, E2E automation frameworks like Detox may not provide sufficient ROI without significant test design investment.
- Minimal CI/CD Investment — Detox requires DevOps infrastructure (simulators/devices, build agents, CI configuration). If your team lacks CI/CD maturity, setup and maintenance overhead may exceed benefits.
- Limited JavaScript/Node.js Expertise — Test authoring and debugging require JavaScript and async patterns; teams without JS experience may face a steeper onboarding curve than lower-code alternatives.
License & commercial use
Detox is released under the MIT License, a permissive open-source license that allows commercial use, modification, and distribution with minimal restrictions.
MIT License permits commercial use without restriction. No proprietary license, SLA, or commercial support model is evident from the provided data. For production use, verify support availability through the project's Discord community or consider commercial support arrangements independently.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Strong |
| License clarity | Clear |
| Deployment complexity | Moderate |
| DEV.co fit | Good |
| Assessment confidence | High |
Detox runs test code against live app instances in simulators/devices; no security audit or vulnerability history provided in available data. Verify that test infrastructure is isolated from production environments. Test credentials and sensitive data in E2E tests should follow secure secret management practices (never hardcoded). Gray box approach may expose internal app structure; ensure test code and artifacts do not leak proprietary implementation details.
Alternatives to consider
Appium
Cross-platform mobile automation (iOS, Android, web); works with any app (not React Native–specific); more mature ecosystem but generally more flaky without gray box synchronization.
Espresso (Android) / XCTest (iOS)
Native platform test frameworks with tighter OS integration; lower-level control; require separate codebases per platform; preferred for non-React Native apps or when platform-specific testing is mandatory.
Cypress (web-focused), Playwright (cross-browser)
Modern, deterministic E2E testing; not mobile-native but can test React Native web builds; simpler setup for web-first teams; less suitable for native mobile UI.
Build on Detox with DEV.co software developers
Explore Detox's gray box testing approach and integrate it into your CI/CD pipeline. Start with the getting-started guide and join the community on Discord for support.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
Detox FAQ
Can I use Detox to test native (non-React Native) iOS and Android apps?
Does Detox support real device testing on iOS?
What test runners can I use with Detox?
Is Detox free to use commercially?
Software development & web development with DEV.co
Need help beyond evaluating Detox? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source testing integrations — and maintain them long-term.
Ready to reduce flaky E2E tests for your React Native app?
Explore Detox's gray box testing approach and integrate it into your CI/CD pipeline. Start with the getting-started guide and join the community on Discord for support.