gpt4 book ai didi

react-native - 排毒:WAITING网络请求完成超时

转载 作者:行者123 更新时间:2023-12-02 11:18:47 47 4
gpt4 key购买 nike

我正在尝试设置 detox在我的应用程序上运行 e2e 测试(react native + expokit)。
正如我在 https://github.com/wix/Detox/issues/1627 中提到的,我的测试一直超时

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"
)

我已将这些网址添加到 detoxURLBlacklistRegex但它并不能解决问题。正如我在 https://github.com/wix/Detox/issues/1627 中所说的我认为禁用实时重新加载会使测试通过,但事实并非如此 总是 这种情况 - 有时会,有时会超时。这是我的 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();
});

该问题可在此 repo 中重现: https://github.com/clems36/detox-test

这是跟踪:
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.

最佳答案

您是否尝试过转义特殊字符?它在 detox docs 中说我们可以禁用 EarlGrey's network synchronization mechanism通过提供正则表达式跳过某些 URL,在首选端点上建立机制。

例如,

  beforeAll(async () => {
await device.setURLBlacklist([
'.*10\.4\.12\.38.*'
]);
});

至少对我来说是这样 - 请让我知道这是否有效。

关于react-native - 排毒:WAITING网络请求完成超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57769584/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com