问题描述
在更新到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
这是我的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上运行
解决方法
经过长时间的搜索,我发现实际的测试在项目的子模块/子仓库中。这些测试是从应用根目录级别触发的。在更新之前,即使这些测试也已正确触发。现在,它们只有在我将它们从子模块级别移至应用程序根级别时才起作用