java - 运行 webdriver.io 测试时出现“错误:未找到:java”
问题描述
我正在尝试从 VS Code 调试器运行webdriver.io 测试套件,但它失败并显示错误消息:
ERROR @wdio/cli:utils: A service failed in the 'onPrepare' hook
Error: not found: java
at getNotFoundError (/Users/andrew/projects/rod-licensing-tests/packages/frontend-acceptance-tests/node_modules/selenium-standalone/node_modules/which/which.js:10:17)
我该如何解决这个问题?通过查看网络上的类似问题,我尝试了以下相同的结果:
npm install
- 使用安装 Java
npm install java
- 安装 selenium-standalone
./node_modules/.bin/selenium-standalone install
launch.json
在我的配置中添加一个环境变量:"JAVA_HOME": "/usr/libexec/java_home"
- 通过系统偏好设置将我的 Mac 上的 Java 更新为 Java 8 update 271
测试确实使用 Docker 成功运行,但理想情况下我也希望从 IDE 运行它,以便我可以快速启动和调试它们。此外,我的同事可以在 IntelliJ IDE Ultimate 中使用 config 运行相同的测试,但我觉得这在 VS Code 中也应该是可能的。
这是我launch.json
文件的当前内容:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch via NPM",
"type": "pwa-node",
"args": [
"conf/local.conf.js",
"--logLevel trace"
],
"cwd": "${workspaceFolder}/packages/frontend-acceptance-tests",
"env": {
"JAVA_HOME": "/usr/libexec/java_home",
"SERVICE_URL": "[redacted]",
"OAUTH_AUTHORITY_HOST_URL": "[redacted]",
"OAUTH_TENANT": "[redacted]",
"OAUTH_CLIENT_ID": "[redacted]",
"OAUTH_CLIENT_SECRET": "[redacted]",
"OAUTH_SCOPE": "[redacted]",
"DYNAMICS_API_PATH": "[redacted]",
"DYNAMICS_API_VERSION": "9.1"
},
"request": "launch",
"runtimeExecutable": "${workspaceFolder}/packages/frontend-acceptance-tests/node_modules/.bin/wdio",
"runtimeVersion": "14.13.0"
}
]
}
我对 Node.JS 还是很陌生,所以还在学习它是如何组合在一起的。任何建议表示赞赏!
解决方案
如果我们使用 selenium-standalone-service 运行测试,则需要安装 JAVA-JDK。package.json 中还应提供以下依赖项
{
"devDependencies": {
"@wdio/selenium-standalone-service": "^6.6.1"
}
}
或者
>npm install @wdio/selenium-standalone-service --save-dev
用于 VScode 调试
根据文档,我们需要启用JavaScript 调试器(每晚)。
示例 .vscode/launch.json 应该看起来像
{
"name": "run select spec",
"type": "node",
"request": "launch",
"args": ["wdio.conf.js", "--spec", "${file}"],
"cwd": "${workspaceFolder}",
"autoAttachChildProcesses": true,
"program": "${workspaceRoot}/node_modules/@wdio/cli/bin/wdio.js",
"console": "integratedTerminal"
},
示例:launch.json
推荐阅读
- android - Android Studio 和 Kotlin - 在挂起函数中的运行时设置断点不起作用
- magento - 从 Observer Magento 1.9 设置产品自定义选项
- javascript - Rx.Js:理解扩展运算符
- appium - Appium Desktop 无法启动会话错误 ENOTFOUND
- python - 如何在模型中正确使用 tensorflow 函数
- spring - 如何使用自定义弹簧 DispatcherServlet 测试休息控制器
- javascript - 在 typescript svelte 中导入别名 svelte 组件
- c - C语言中,结构体包含枚举类型属性,如何将这个结构体输入并写入文件
- r - 错误在管道中找不到 r 中的函数
- java - 为什么在连接到可访问主机时在 Android 9 上引发 UnknownHostException?