黄瓜框架中出现意外的“找不到模块”和“ERR_UNSUPPORTED_DIR_IMPORT”

问题描述 投票:0回答:1

既然我使用的是wdio.conf.js,为什么会提示以下错误?

ERROR @wdio/runner: Error: Cannot find module '/Users/kennykwan/Downloads/webdriverio-appium/index.js'. Please verify that the package.json has a valid "main" entry
[0-0]     at tryPackage (node:internal/modules/cjs/loader:450:19)
[0-0]     at Function.Module._findPath (node:internal/modules/cjs/loader:720:18)
[0-0]     at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1135:27)
[0-0]     at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue [as _resolveFilename] (/Users/kennykwan/Downloads/webdriverio-appium/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
[0-0]     at Function.resolve (node:internal/modules/helpers:187:19)
[0-0]     at CucumberAdapter.loadAndRefreshModule (file:///Users/kennykwan/Downloads/webdriverio-appium/node_modules/@wdio/cucumber-framework/build/index.js:255:59)
[0-0]     at CucumberAdapter.loadFiles (file:///Users/kennykwan/Downloads/webdriverio-appium/node_modules/@wdio/cucumber-framework/build/index.js:267:18)
[0-0]     at processTicksAndRejections (node:internal/process/task_queues:95:5)
[0-0]     at async CucumberAdapter.run (file:///Users/kennykwan/Downloads/webdriverio-appium/node_modules/@wdio/cucumber-framework/build/index.js:169:13)
[0-0]     at async Runner.run (file:///Users/kennykwan/Downloads/webdriverio-appium/node_modules/@wdio/runner/build/index.js:157:24)
[0-0]  Error:  Cannot find module '/Users/kennykwan/Downloads/webdriverio-appium/index.js'. Please verify that the package.json has a valid "main" entry
[0-0] FAILED in Android - file:///features/loginFlow.feature

文件结构:

webdriverio-appium
-app
--app.apk
-features
--steps.js
--test.features
-node_mobules
-babel.config.js
-package-lock.json
-package.json
-wdio.conf.js

package.json:

{
  "name": "webdriverio-appium",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "wdio": "wdio run ./wdio.conf.js"
  },
  "keywords": [],
  "license": "ISC",
  "dependencies": {
    "@wdio/cli": "^8.32.0",
    "@wdio/runner": "^8.31.0",
    "appium": "^2.0.1"
  },
  "devDependencies": {
    "@babel/cli": "^7.23.9",
    "@babel/core": "^7.23.9",
    "@babel/node": "^7.23.9",
    "@babel/preset-env": "^7.23.9",
    "@babel/register": "^7.23.7",
    "@wdio/allure-reporter": "^8.31.0",
    "@wdio/appium-service": "^8.31.0",
    "@wdio/cli": "^8.32.0",
    "@wdio/cucumber-framework": "^8.31.0",
    "@wdio/local-runner": "^8.31.0",
    "@wdio/spec-reporter": "^8.31.0",
    "allure-commandline": "^2.27.0",
    "appium": "^2.0.1",
    "appium-uiautomator2-driver": "^3.0.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.3.3",
    "wdio-wait-for": "^3.0.11"
  },
  "type": "module"
}

当我运行 npx wdio 时,将显示:

错误@wdio/runner:错误:找不到模块“path/webdriverio-appium/index.js”。请验证 package.json 是否具有有效的“main”条目

当我将“main”更改为“./features/steps.js”时,将显示:

错误@wdio/runner:错误:ERR_UNSUPPORTED_DIR_IMPORT /path/webdriverio-appium/node_modules/@wdio/cucumber-framework/build/index.js

我尝试删除 package-lock.json 和 node_modules 并使用

$ npm i
,但重新运行我的测试仍然显示相同的错误

我尝试重新安装一个新项目,但仍然显示相同的错误

在vscode能够成功运行测试之前...

node.js appium-android wdio
1个回答
0
投票

之前:

cucumberOpts: {
require: [''],
}

之后:

cucumberOpts: {
require: ['./features/steps.js'],
}
© www.soinside.com 2019 - 2024. All rights reserved.