DetoxRuntimeError:Detox实例尚未初始化

问题描述

在更新到react-native 0.63.3和xcode 12.0.1之后,测试不再起作用。首先有一些问题排毒,但解决了。现在出现了此错误,我无法继续进行下去:

DetoxRuntimeError: Detox instance has not been initialized
HINT: Make sure to call detox.init() before your test begins

detox.init()被调用,我可以在日志中看到它。

这是我的init.js

import { device } from 'detox';

const detox = require('detox');

const config = require('../package.json').detox;
const adapter = require('detox/runners/jest/adapter');
const specReporter = require('detox/runners/jest/specReporter');
const assignReporter = require('detox/runners/jest/assignReporter');

jest.setTimeout(180000);

jasmine.getEnv().addReporter(adapter);

jasmine.getEnv().addReporter(specReporter);

jasmine.getEnv().addReporter(assignReporter);

beforeAll(async () => {
  await detox.init(config,{ launchApp: false });
  const permissions = {
    notifications: 'NO',camera: 'NO',};
  await device.launchApp({ permissions });
});

beforeEach(async () => {
  await adapter.beforeEach();
});

afterall(async () => {
  await adapter.afterall();
  await detox.cleanup();
});

我的环境:

本机:0.63.3排毒:17.10.3 xcode:12.0.1 iOS:14.0

在ios.sim.debug上运行

解决方法

经过长时间的搜索,我发现实际的测试在项目的子模块/子仓库中。这些测试是从应用根目录级别触发的。在更新之前,即使这些测试也已正确触发。现在,它们只有在我将它们从子模块级别移至应用程序根级别时才起作用