Gray box end-to-end testing and automation framework for mobile apps
MIT License
Bot releases are visible (Hide)
Published by noomorph almost 3 years ago
Affects only multi-app users. #3038 deprecates the unfortunate solution with { permanent: boolean }
(see #2990) and suggests using device.appLaunchArgs.shared
editor instead:
-device.appLaunchArgs.modify({ multiAppParameter: 'value' }, { permanent: true });
+device.appLaunchArgs.shared.modify({ multiAppParameter: 'value' });
Detox will be printing a warning if you use the deprecated signature:
detox[11948] WARN: Detected an attempt to use device.launchArgs.modify(...) with a deprecated 'options' parameter.
Please use device.appLaunchArgs.shared.modify(...) instead.
For more details, see the reference at: https://wix.github.io/Detox/docs/api/device-object-api#deviceapplaunchargs
device.captureViewHierarchy()
typings (#3061, @noomorph)Published by d4vidi almost 3 years ago
... at least not for the standard user.
Detox's version was major-bumped to 19 due to its potential breaking of 3rd party Detox-driver projects.
For complete information, refer to our migration guide.
Published by jonathanmos almost 3 years ago
fishhook
dependency to the latest version (#3027, @asafkorem, @calebmackdavenport).Published by jonathanmos about 3 years ago
Fixes:
Published by d4vidi about 3 years ago
Fixes:
adb install
for Android API < 23 (#2964, @david50407)Published by alon-ha about 3 years ago
Starting this release, Detox properly supports iOS v15 💪🏻
Previously you could override these options only via command line arguments. Now you can modify them via JS/JSON configs:
interface DetoxAndroidEmulatorDriverConfig extends DetoxSharedAndroidDriverConfig {
type: 'android.emulator';
device: string | { avdName: string };
+ bootArgs?: string;
+ gpuMode?: 'auto' | 'host' | 'swiftshader_indirect' | 'angle_indirect' | 'guest';
+ headless?: boolean;
+ readonly?: boolean;
}
interface DetoxSharedAndroidDriverConfig {
+ forceAdbInstall?: boolean;
utilBinaryPaths?: string[];
}
interface DetoxIosSimulatorDriverConfig {
type: 'ios.simulator';
device: string | Partial<IosSimulatorQuery>;
+ bootArgs?: string;
}
Now you can persist app launch args between device.selectApp(name)
calls, e.g.:
device.appLaunchArgs.modify({ ourMockServerPort: 9999 }, { permanent: true });
await device.selectApp('app2');
device.appLaunchArgs.get(); // { ourMockServerPort: 9999 }
--device-launch-args
if you already do – use --device-boot-args
instead. Otherwise, you'll be seeing deprecation warningsPublished by d4vidi about 3 years ago
detoxURLBlacklistRegex
on Android (#2911, @jonathanmos)Published by noomorph about 3 years ago
This release fixes handling of a couple of edge cases in Detox:
bundleId
explicitly (#2960, @noomorph)Published by d4vidi about 3 years ago
Published by d4vidi about 3 years ago
device.id
for Genymotion, with ext-api contract (#2915, d4vidi)Published by noomorph about 3 years ago
await element(by.id('slider')).adjustSliderToPosition(0.75);
await expect(element(by.id('slider'))).toHaveSliderPosition(0.75);
await expect(element(by.id('slider'))).toHaveSliderPosition(0.74, 0.1);
detox[38329] INFO: [APP_STATUS] App synchronization debug:
The app is busy, due to:
- In-flight network activity
Details:
- [http://localhost:9001/delay/3000]
await element(by.id('scrollView')).scrollToIndex(0);
-u, --cleanup
CLI option (#2892, @noomorph)--retries <N>
option (#2900, @noomorph)This release brings a few improvements to Detox configuration.
extends: ...
(#2870, @noomorph)The
extends
clause behavior has been documented for relative module paths and aligned to a commonly expectedrequire(...)
behavior:
{
"extends": "../someDir/someBaseDetoxConfig"
}
skipLegacyWorkersInjection: true
(#2872, @noomorph)When added to a Detox config, it makes
detox test
command omit permanent--workers 1
CLI arg passed to Jest by default. This way, you can control your default workers count value programmatically in your Jest config viamaxWorkers: <count>
option. Thanks to @cdavie-weconnect for the initial idea.
Published by d4vidi over 3 years ago
waitFor
+ element().atIndex()
: atIndex
matcher ignored (#2850, @noomorph)Feature parity between Android and iOS is an important goal for Detox, and today we have a few long-awaited feature requests for Android implemented in this release by @emilisb and @jonathanmos. 🎉
device.setLocation(...)
support (#2783, by @emilisb)expect(...).toBeFocused()
support (#2822, by @jonathanmos)device.disableSynchronization()
disables all synchronizations, i.e. not only the network (#2836, @jonathanmos)3.2.0
->3.3.0
(latest stable) (#2816, @d4vidi)Note: If you're using Detox but happen to have direct dependencies in
Espresso
(in your Gradle scripts), please remove them:// app/build.gradle dependencies { - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0 }
--record-videos all
for Xcode 12.4+ (#2829, @noomorph)detox-native
(#2824, @d4vidi)element(...).takeScreenshot()
iOS API-parity with Android's (#2795, by @alon-ha)process.log
to device.log
(#2813, by @d4vidi)Fixes this blocker on Windows platforms:
Error: "detox-cli" package is not meant to be installed locally, exiting...
HINT: Remove the local installation and reinstall it globally:
npm uninstall detox-cli
npm install -g detox-cli