mirror of
https://github.com/hanzoai/Detox.git
synced 2026-09-24 16:55:12 +00:00
91 lines
8.0 KiB
Plaintext
91 lines
8.0 KiB
Plaintext
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
|
|
import Location from './partials/_location-dictionaries.mdx';
|
|
|
|
# Devices
|
|
|
|
The format of Detox config allows you to define inside it multiple device configs in a key-value manner, i.e.:
|
|
|
|
## Location
|
|
|
|
<Location sectionName="devices" propertyName="device" />
|
|
|
|
## Examples
|
|
|
|
<Tabs groupId="deviceType">
|
|
<TabItem value="ios.simulator" default>
|
|
|
|
```json
|
|
{
|
|
"type": "ios.simulator",
|
|
"device": {
|
|
// one of these or a combination of them
|
|
"id": "D53474CF-7DD1-4673-8517-E75DAD6C34D6",
|
|
"type": "iPhone 11 Pro",
|
|
"name": "MySim",
|
|
"os": "iOS 13.0"
|
|
},
|
|
}
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android.emulator">
|
|
|
|
```json
|
|
{
|
|
"type": "android.emulator",
|
|
"device": {
|
|
"avdName": "Pixel_2_API_29"
|
|
},
|
|
"utilBinaryPaths": [
|
|
"optional-property-with/path/to/test-butler-or-anything-else.apk"
|
|
],
|
|
}
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android.attached">
|
|
|
|
```json
|
|
{
|
|
"type": "android.attached",
|
|
"device": {
|
|
"adbName": "YOGAA1BBB412"
|
|
}
|
|
}
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="android.genycloud">
|
|
|
|
```json
|
|
{
|
|
"type": "android.genycloud",
|
|
"device": {
|
|
// one of these:
|
|
"recipeUUID": "11111111-2222-3333-4444-555555555555"
|
|
"recipeName": "MyRecipeName",
|
|
}
|
|
}
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
## Properties
|
|
|
|
A device config can have the following params:
|
|
|
|
| Configuration Params | Details |
|
|
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `type` | _**Required.** String Literal_. Mandatory property to discern device types: `ios.simulator`, `android.emulator`, `android.attached`, `android.genycloud` etc. |
|
|
| `device` | _**Required.** Object._ Device query, e.g. `{ "byType": "iPhone 11 Pro" }` for iOS simulator, `{ "avdName": "Pixel_2_API_29" }` for Android emulator or `{ "adbName": "<pattern>" }` for attached Android device with name matching the regex. |
|
|
| `bootArgs` | _Optional. String. Supported by `ios.simulator` and `android.emulator` only._ <br/> Supply an extra _String_ of arguments to `xcrun simctl boot ...` or `emulator -verbose ... @AVD_Name`. |
|
|
| `forceAdbInstall` | _Optional. Boolean. Supported for Android devices only._ <br/> A _Boolean_ value, `false` by default. When set to `true`, it tells `device.installApp()` to use `adb install`. Otherwise, it would use the combination of `adb push <app.apk>` and `adb shell pm install`. |
|
|
| `utilBinaryPaths` | _Optional. Array of strings. Supported for Android devices only._ <br/> An array of relative paths of _utility_ app (APK) binary-files to preinstall on the tested devices - once before the test execution begins.<br/>**Note**: these are not affected by various install-lifecycle events, such as launching an app with `device.launchApp({delete: true})`, which reinstalls the app. A good example of why this might come in handy is [Test Butler](https://github.com/linkedin/test-butler). |
|
|
| `gpuMode` | _Optional. String Literal (<code>auto \| host \| swiftshader\_indirect \| angle\_indirect \| guest</code>). Supported by `android.emulator` only._ <br/> A fixed **string** , which tells [in which GPU mode](https://developer.android.com/studio/run/emulator-acceleration#command-gpu) the emulator should be booted. |
|
|
| `headless` | _Optional. Boolean._ `false` by default. When set to `true`, it tells Detox to boot an Android emulator with `-no-window` option, or to not open the iOS Simulator app when running with Android or iOS respectively. |
|
|
| `readonly` | _Optional. Boolean. Supported by `android.emulator` only._ <br/> `false` by default. When set to `true`, it forces Detox to boot even a single emulator with `-read-only` option.<br/>**Note**: when used with multiple workers, this setting has no effect — emulators will be booted always with `-read-only`. |
|
|
| `systemUI` | _Optional. String or Object. Supported by Android devices only._ <br/> Configures the Android System UI for consistent screenshots and test stability. Can be set to `"minimal"` or `"genymotion"` (preset configurations) or an object with granular control. When using an object, you can set `extends: "minimal"` or `extends: "genymotion"` to start from a preset and override specific properties. All properties accept `null` to explicitly reset to default behavior. <br/><br/>**Object properties:**<br/>- `keyboard`: `'hide'` \| `'show'` \| `null` - Controls keyboard visibility. Note: For `'hide'` to work in Google emulators, set `hw.keyboard=yes` in AVD configuration.<br/>- `touches`: `'hide'` \| `'show'` \| `null` - Controls touch indicator visibility.<br/>- `pointerLocationBar`: `'hide'` \| `'show'` \| `null` - Controls pointer location bar visibility.<br/>- `navigationMode`: `'3-button'` \| `'gesture'` \| `null` - Sets navigation bar mode.<br/>- `statusBar`: Object with the following properties:<br/> - `notifications`: `'show'` \| `'hide'` \| `null` - Controls notification icons visibility.<br/> - `wifiSignal`: `'strong'` \| `'weak'` \| `'none'` \| `null` - Sets WiFi signal strength indicator.<br/> - `cellSignal`: `'strong'` \| `'weak'` \| `'none'` \| `null` - Sets cellular signal strength indicator. Note: Some Android versions fail to set the network type (3g, lte, etc.).<br/> - `batteryLevel`: `'full'` \| `'half'` \| `'low'` \| `null` - Sets battery level indicator.<br/> - `charging`: `true` \| `false` \| `null` - Controls charging indicator.<br/> - `clock`: `string` \| `null` - Sets the clock time in "hhmm" format (e.g., `"1337"` for 13:37). |
|