I'm trying to set up detox to run e2e tests on my app (react native + expokit). As i had mentioned in https://github.com/wix/Detox/issues/1627, my test keeps timing out with
Waiting for network requests to finish.: (
"http://10.4.12.38:19001/symbolicate",
"http://10.4.12.38:19001/symbolicate",
"http://10.4.12.38:19001/symbolicate",
"http://10.4.12.38:19001/symbolicate",
"http://10.4.12.38:19001/onchange"
)
I've added those urls to detoxURLBlacklistRegex
but it doesn't do the trick. As I said in https://github.com/wix/Detox/issues/1627 i thought disabling live reload would make the tests pass but it is not always the case - sometimes it does, sometimes it times out. Here's my init.js
:
const detox = require('detox');
const adapter = require('detox/runners/jest/adapter');
const specReporter = require('detox/runners/jest/specReporter');
const config = require('../package.json').detox;
// Set the default timeout
jest.setTimeout(30000);
jasmine.getEnv().addReporter(adapter);
// This takes care of generating status logs on a per-spec basis. By default, jest only reports at file-level.
// This is strictly optional.
jasmine.getEnv().addReporter(specReporter);
beforeAll(async () => {
await detox.init(config, {
launchApp: false,
});
await device.launchApp({
permissions: { notifications: 'YES' },
launchArgs: {
detoxPrintBusyIdleResources: 'YES',
detoxURLBlacklistRegex:
'.*://10.4.12.38.*',
},
});
});
beforeEach(async () => {
await adapter.beforeEach();
});
afterAll(async () => {
await adapter.afterAll();
await detox.cleanup();
});
The issue is repoducible in this repo: https://github.com/clems36/detox-test
Here's the trace:
detox[55327] TRACE: [Detox.js/DETOX_BEFORE_EACH] running test: "Example should show hello screen after tap"
detox[55327] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeEach({
title: 'should show hello screen after tap',
fullName: 'Example should show hello screen after tap',
status: 'running'
})
detox[55327] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"reactNativeReload","params":{},"messageId":-1000}
detox[55327] TRACE: [DetoxServer.js/MESSAGE] role=tester action=reactNativeReload (sessionId=6ee3a6df-152d-a069-f95a-ecd53e7fc872)
detox[55327] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"invoke","params":{"target":{"type":"Invocation","value":{"target":{"type":"EarlGrey","value":"instance"},"method":"detox_selectElementWithMatcher:","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"GREYMatchers"},"method":"matcherForAccessibilityID:","args":[{"type":"NSString","value":"hello_button"}]}}]}},"method":"performAction:","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"GREYActions"},"method":"actionForTap","args":[]}}]},"messageId":2}
detox[55327] TRACE: [DetoxServer.js/MESSAGE] role=tester action=invoke (sessionId=6ee3a6df-152d-a069-f95a-ecd53e7fc872)
Example: should show hello screen after tap [FAIL]
Example: should show world screen after tap
detox[55327] TRACE: [Detox.js/DETOX_AFTER_EACH] failed test: "Example should show hello screen after tap"
detox[55327] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onAfterEach({
title: 'should show hello screen after tap',
fullName: 'Example should show hello screen after tap',
status: 'failed',
timedOut: true
})
detox[55327] WARN: [Client.js/PENDING_REQUESTS] App has not responded to the network requests below:
(id = 2) invoke: {"target":{"type":"Invocation","value":{"target":{"type":"EarlGrey","value":"instance"},"method":"detox_selectElementWithMatcher:","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"GREYMatchers"},"method":"matcherForAccessibilityID:","args":[{"type":"NSString","value":"hello_button"}]}}]}},"method":"performAction:","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"GREYActions"},"method":"actionForTap","args":[]}}]}
(id = -1000) reactNativeReload: {}
That might be the reason why the test "Example should show hello screen after tap" has timed out.
Aucun commentaire:
Enregistrer un commentaire