Harness brings Jest-style tests to real native environments so you can test TurboModules like you would test your React Native app: with JavaScript.
See the code
Bridge the testing gap: Jest-style tests in real native environments. Get the convenience of describe/it with full access to native modules.
// 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:
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! 🔥
TypeScript
87.9%
MDX
4.8%
Kotlin
1.9%
Objective-C++
1.9%
JavaScript
1.6%
Swift
1.1%
Harness brings Jest-style tests to real native environments so you can test TurboModules like you would test your React Native app: with JavaScript.
See the code
Bridge the testing gap: Jest-style tests in real native environments. Get the convenience of describe/it with full access to native modules.
// 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:
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! 🔥
TypeScript
87.9%
MDX
4.8%
Kotlin
1.9%
Objective-C++
1.9%
JavaScript
1.6%
Swift
1.1%