mit licence npm downloads Chat PRs Welcome
Bridge the testing gap: Jest-style tests in real native environments. Get the convenience of describe/it with full access to native modules.
- Jest-Style Syntax, Native Power: Write familiar describe/it tests that run in real iOS and Android environments with full native module access.
- Best of Both Worlds: Unlike Jest (Node.js only) or Maestro (UI-based), get convenient test syntax AND native environment execution.
- Real Device, Simulator & Web Testing: Execute tests on iOS simulators, Android emulators, or in a browser (Web) — catch platform-specific issues Jest can't see.
- Native Module Testing: Test native modules, platform APIs, and device-specific functionality that's impossible with JavaScript-only runners.
- Familiar Test Structure: Use beforeEach, afterEach, describe, it, expect — all the testing patterns you know and love from Jest.
- Zero Configuration Setup: Drop-in replacement for your existing test workflow with TypeScript support and seamless CI/CD integration.
// rn-harness.config.mjs import { androidPlatform, androidEmulator, physicalAndroidDevice, } from '@react-native-harness/platform-android'; import { applePlatform, applePhysicalDevice, appleSimulator, } from '@react-native-harness/platform-apple'; const config = { entryPoint: './src/main.tsx', appRegistryComponentName: 'MyApp', runners: [ androidPlatform({ name: 'android', device: androidEmulator('Pixel_8_API_35'), bundleId: 'com.myapp', }), applePlatform({ name: 'ios', device: appleSimulator('iPhone 16 Pro Max', '18.0'), bundleId: 'com.myapp', }), ], defaultRunner: 'android', }; export default config;
The documentation is available at react-native-harness.dev. You can also use the following links to jump to specific topics:
- Quick Start
- Configuration (Metro port, plugins, timeouts, coverage, and more)
- Problem Statement
- Feature Comparison
- Running in CI/CD
- API Reference
react-native-harness is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. Callstack is a group of React and React Native geeks, contact us at hello@callstack.com if you need any help with these or just want to say hi!
Like the project? ⚛️ Join the team who does amazing stuff for clients and drives React Native Open Source! 🔥