如何解决使用 gitlab-runner 的 docker executor 运行 E2E 测试时崩溃并出现 spawn chromedriver ENOENT 错误
我在量角器 (v7) 中有一个 e2e 测试项目,在 config.ts
中将 chrome 设置为目标浏览器...
directConnect: true,multiCapabilities: [
{
browserName: 'chrome',chromeOptions: {
args: ["--headless","--disable-gpu","--window-size=1920x1080","--no-sandBox"]
}
}
],...
通过带有 gitlab-runner exec shell run_tests
的 gitlab-runner 的 shell 执行器运行项目工作正常,但如果我通过 gitlab-runner 的 docker 执行器运行它,带有 gitlab-runner exec docker run_tests
,它会在 yarn test
cmd 上崩溃(基本上可以转换为 gitlab-ci 脚本的 protractor config.ts
) 并带有以下日志:
protractor config.ts
[09:14:27] I/launcher - Running 1 instances of WebDriver
[09:14:27] I/direct - Using ChromeDriver directly...
[09:14:27] E/launcher - spawn /builds/project-0/node_modules/webdriver-manager/selenium/chromedriver_90.0.4430.24 ENOENT
[09:14:27] E/launcher - Error: spawn /builds/project-0/node_modules/webdriver-manager/selenium/chromedriver_90.0.4430.24 ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:249:19)
at onErrorNT (internal/child_process.js:442:16)
at processticksAndRejections (internal/process/task_queues.js:84:9)
[09:14:27] E/launcher - Process exited with error code 199
error Command Failed with exit code 199.
.gitlab-ci.yml 看起来像这样:
image: node:12.2.0-alpine
stages:
- run
variables:
SERVER_URL: "https://xyz.io/login"
USER_1_USERNAME: "rico"
run_tests:
stage: run
script:
- echo $SERVER_URL
- echo $USER_1_USERNAME
- yarn install:deps
- yarn test
任何帮助将不胜感激。我在 ci 脚本中缺少 chrome 安装吗?
解决方法
所以,我的预感是对的,它基本上没有安装 google chrome,而且由于我使用的是 alpine docker 映像,因此安装 chrome 也是 no simple feat。因此,我不得不将我的 docker 映像更改为 node:<version>
,这是基于 debian 的映像并包含 chrome 安装说明,使用来自 https://askubuntu.com/a/196100/1217294 的信息,仅排除 sudo
(它们在一个 gitlab-runner 容器)并在 apt-get install 之后包含和 -y
(绕过用户提示),并且它起作用了。这是我的 gitlab ci 脚本的样子:
image: node:12
stages:
- run
run_tests:
stage: run
script:
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
- sh -c 'echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
- apt-get update
- apt-get install -y google-chrome-stable
- yarn install:deps
- yarn test
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。