【发布时间】:2020-10-22 09:07:07
【问题描述】:
我正在尝试从 VS Code 调试器运行 webdriver.io test suite,但它失败并显示错误消息:
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- 使用
npm install java安装Java - 使用
./node_modules/.bin/selenium-standalone install安装 selenium-standalone - 将环境变量添加到我的
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”时,您需要在机器上安装 JAVA-JDK webdriver.io/docs/selenium-standalone-service.html。在当前项目中 package.json 已经包含 selenium-standalone 依赖项,因此您应该可以使用它。参考这个webdriver.io/docs/debugging.html 获取launch.json
-
谢谢拉胡尔。我已经将我的 launch.json 更改为更接近 webdriver.io 调试文档,并且原来的 java 错误现在已经消失了!我现在明白了:
ERROR @wdio/runner: /Users/andrew/projects/rod-licensing-tests/packages/frontend-acceptance-tests/node_modules/simple-oauth2/lib/client.js:19 #config = null所以会进一步调查。 -
@RahulL 现在已修复,感谢您的 wdio 调试链接!我认为关键是:设置
"type": "node",删除"runtimeExecutable"并添加"program": "${workspaceFolder}/packages/frontend-acceptance-tests/node_modules/.bin/wdio"。请随意回复完整答案,我会将其标记为已接受。
标签: java node.js selenium visual-studio-code webdriver-io