Description
Detox tests are hanging on the init
call on Android emulator. The app is installed on the emulator, but never launches. The same tests execute over the same application on the iOS simulator. I am using Cucumber
for the test runner and am just calling the init
function in the BeforeAll
hook.
hooks.js
const {Before, BeforeAll, AfterAll} = require('cucumber');
const detox = require('detox');
const detoxConfig = require('../../../package.json').detox;
BeforeAll({timeout: 60 * 1000}, async () => {
await detox.init(detoxConfig);
});
package.json
"detox": {
"configurations": {
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
"build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
"type": "android.emulator",
"name": "Pixel_2",
"session": {
"server": "ws://localhost:8099",
"sessionId": "androidDebug"
}
}
}
}
Detox, Node, Device, and macOS Versions
Detox: 7.3.3
Node: 8.9.4
Emulator: Android Studio default w/ API 24 (7.0)
macOS: High Sierra Version 10.13.3
React-Native: 0.55.2
React: 16.0.0
Detox Server Logs
MBP-55EE:detox-android$ detox run-server
detox-server info 12:14:32: server listening on localhost:8099...
detox-server wss 12:14:48: role=tester login (sessionId=androidDebug)
detox-server wss 12:14:48: role=tester action=loginSuccess
(sessionId=androidDebug)
detox-server wss 12:14:53: role=tester action=isReady
(sessionId=androidDebug)
detox-server wss 12:14:53: role=testee not connected, cannot fw action
(sessionId=androidDebug)
detox-server wss 12:15:48: role=tester disconnect
(sessionId=androidDebug)
What sticks out to me is on iOS the tests complete, but I still see the line about the testee not being connected, so I am at a loss.
All things equal except this is run on iOS Simulator in XCode 9
MBP-55EE:detox-android$ detox run-server
detox-server info 10:53:28: server listening on localhost:8099...
detox-server wss 10:54:27: role=tester login (sessionId=debugSession)
detox-server wss 10:54:27: role=tester action=loginSuccess
(sessionId=debugSession)
detox-server wss 10:54:44: role=tester action=isReady
(sessionId=debugSession)
detox-server wss 10:54:44: role=testee not connected, cannot fw action
(sessionId=debugSession)
detox-server wss 10:54:49: role=testee login (sessionId=debugSession)
detox-server wss 10:54:49: role=testee action=loginSuccess
(sessionId=debugSession)
detox-server wss 10:54:49: role=testee action=ready
(sessionId=debugSession)
detox-server wss 10:54:49: role=tester action=invoke
(sessionId=debugSession)
detox-server wss 10:54:49: role=testee action=invokeResult
(sessionId=debugSession)
detox-server wss 10:54:49: role=tester action=invoke
(sessionId=debugSession)
detox-server wss 10:54:50: role=testee action=invokeResult
(sessionId=debugSession)
detox-server wss 10:54:50: role=tester action=invoke
(sessionId=debugSession)
detox-server wss 10:54:50: role=testee action=invokeResult
(sessionId=debugSession)
...
Any ideas on why iOS works as expected, but Android does not?