detox ReferenceError: before is not defined
detox ReferenceError: before is not defined
我正在使用排毒测试工具,但遇到问题。
我只安装了 Detox,我只 运行 ios 测试的基本代码,我得到以下错误:
请帮帮我。
刚刚iOS
错误日志
$ detox test --configuration ios.sim.debug --debug-synchronization --take-screenshots all --record-videos nonex --record-logs all
node_modules/.bin/jest e2e --config=e2e/config.json --maxWorkers=1 --testNamePattern='^((?!:android:).)*$'
FAIL e2e/firstTest.spec.js
● Test suite failed to run
ReferenceError: before is not defined
3 | const adapter = require('detox/runners/mocha/adapter');
4 |
> 5 | before(async () => {
| ^
6 | await detox.init(config);
7 | });
8 |
at Object.<anonymous> (init.js:5:1)
package.json
"script":{
"e2e:ios": "detox test --configuration ios.sim.debug --debug-synchronization --take-screenshots all --record-videos nonex --record-logs all",
"e2e:android": "detox test --configuration android.emu.debug --loglevel verbose --take-screenshots all --record-videos none --record-logs all"
},
dependencies": {
"detox": "^8.0.0",
"jest": "^23.1.0",
"mocha": "^5.2.0",
},
"detox": {
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/{app_name[enter image description here][1]}.app",
"build": "xcodebuild -workspace ios/{workspace_Name}.xcworkspace -scheme {scheme_name} Dev -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 7"
},
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/dev/debug/{apk_name}.apk",
"build": "react-native run-android --variant=devDebug --appId com.noahclient.dev",
"type": "android.emulator",
"name": "Nexus_5X_API_26"
}
},
"test-runner": "jest"
}
}
我看起来像你在开玩笑 运行 摩卡咖啡测试 运行ner。由于您的 init.js 是为 mocha 设置的,但是您使用的测试 运行ner 是开玩笑的。您收到的错误消息 node_modules/.bin/jest e2e...
证实了这一点。
你应该选择 jest 或 mocha 中的一个来使用它。而不是尝试同时使用两者。
#开玩笑
如果你使用 jest 你的 init.js 应该是这样的:
const detox = require('detox');
const config = require('../package.json').detox;
const adapter = require('detox/runners/jest/adapter');
jest.setTimeout(120000);
jasmine.getEnv().addReporter(adapter);
beforeAll(async () => {
await detox.init(config);
});
beforeEach(async () => {
await adapter.beforeEach();
});
afterAll(async () => {
await adapter.afterAll();
await detox.cleanup();
});
并且您应该将 "test-runner": "jest"
添加到 package.json 中的排毒对象。
您还应该在与 init.js
相同的位置有一个 config.json
文件,其中包含:
{
"setupFilesAfterEnv" : ["./init.js"]
}
#摩卡
如果你使用 mocha 那么你的 init.js 应该是这样的:
const detox = require('detox');
const config = require('../package.json').detox;
const adapter = require('detox/runners/mocha/adapter');
before(async () => {
await detox.init(config);
});
beforeEach(async function () {
await adapter.beforeEach(this);
});
afterEach(async function () {
await adapter.afterEach(this);
});
after(async () => {
await detox.cleanup();
});
并且您应该从 package.json 中的排毒对象中删除 "test-runner": "jest"
,因为它不是必需的。
你的 init.js
旁边应该有一个 mocha.opts
文件,而不是 config.json
文件,它应该有类似于:
的内容
--recursive
--timeout 120000
--bail
#下一步
- 选择您想要运行的测试运行; jest 或者
摩卡.
- 确保您有正确的 init.js 测试文件 运行ner。
- 如果使用 jest 有一个 config.json 文件并将测试-运行ner 添加到 package.json 中的排毒对象。
- 如果使用 mocha 有一个 mocha.opts 文件。无需在 package.json.
中的 detox 对象中指定 test-运行ner
您可以在此处查看设置说明:https://github.com/wix/detox/blob/master/docs/Introduction.GettingStarted.md#step-3-create-your-first-test
如果您仍有问题,请告诉我。
我正在使用排毒测试工具,但遇到问题。
我只安装了 Detox,我只 运行 ios 测试的基本代码,我得到以下错误:
请帮帮我。
刚刚iOS
错误日志
$ detox test --configuration ios.sim.debug --debug-synchronization --take-screenshots all --record-videos nonex --record-logs all
node_modules/.bin/jest e2e --config=e2e/config.json --maxWorkers=1 --testNamePattern='^((?!:android:).)*$'
FAIL e2e/firstTest.spec.js
● Test suite failed to run
ReferenceError: before is not defined
3 | const adapter = require('detox/runners/mocha/adapter');
4 |
> 5 | before(async () => {
| ^
6 | await detox.init(config);
7 | });
8 |
at Object.<anonymous> (init.js:5:1)
package.json
"script":{
"e2e:ios": "detox test --configuration ios.sim.debug --debug-synchronization --take-screenshots all --record-videos nonex --record-logs all",
"e2e:android": "detox test --configuration android.emu.debug --loglevel verbose --take-screenshots all --record-videos none --record-logs all"
},
dependencies": {
"detox": "^8.0.0",
"jest": "^23.1.0",
"mocha": "^5.2.0",
},
"detox": {
"configurations": {
"ios.sim.debug": {
"binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/{app_name[enter image description here][1]}.app",
"build": "xcodebuild -workspace ios/{workspace_Name}.xcworkspace -scheme {scheme_name} Dev -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 7"
},
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/dev/debug/{apk_name}.apk",
"build": "react-native run-android --variant=devDebug --appId com.noahclient.dev",
"type": "android.emulator",
"name": "Nexus_5X_API_26"
}
},
"test-runner": "jest"
}
}
我看起来像你在开玩笑 运行 摩卡咖啡测试 运行ner。由于您的 init.js 是为 mocha 设置的,但是您使用的测试 运行ner 是开玩笑的。您收到的错误消息 node_modules/.bin/jest e2e...
证实了这一点。
你应该选择 jest 或 mocha 中的一个来使用它。而不是尝试同时使用两者。
#开玩笑 如果你使用 jest 你的 init.js 应该是这样的:
const detox = require('detox');
const config = require('../package.json').detox;
const adapter = require('detox/runners/jest/adapter');
jest.setTimeout(120000);
jasmine.getEnv().addReporter(adapter);
beforeAll(async () => {
await detox.init(config);
});
beforeEach(async () => {
await adapter.beforeEach();
});
afterAll(async () => {
await adapter.afterAll();
await detox.cleanup();
});
并且您应该将 "test-runner": "jest"
添加到 package.json 中的排毒对象。
您还应该在与 init.js
相同的位置有一个 config.json
文件,其中包含:
{
"setupFilesAfterEnv" : ["./init.js"]
}
#摩卡 如果你使用 mocha 那么你的 init.js 应该是这样的:
const detox = require('detox');
const config = require('../package.json').detox;
const adapter = require('detox/runners/mocha/adapter');
before(async () => {
await detox.init(config);
});
beforeEach(async function () {
await adapter.beforeEach(this);
});
afterEach(async function () {
await adapter.afterEach(this);
});
after(async () => {
await detox.cleanup();
});
并且您应该从 package.json 中的排毒对象中删除 "test-runner": "jest"
,因为它不是必需的。
你的 init.js
旁边应该有一个 mocha.opts
文件,而不是 config.json
文件,它应该有类似于:
--recursive
--timeout 120000
--bail
#下一步
- 选择您想要运行的测试运行; jest 或者 摩卡.
- 确保您有正确的 init.js 测试文件 运行ner。
- 如果使用 jest 有一个 config.json 文件并将测试-运行ner 添加到 package.json 中的排毒对象。
- 如果使用 mocha 有一个 mocha.opts 文件。无需在 package.json. 中的 detox 对象中指定 test-运行ner
您可以在此处查看设置说明:https://github.com/wix/detox/blob/master/docs/Introduction.GettingStarted.md#step-3-create-your-first-test
如果您仍有问题,请告诉我。