0

我在量角器(v7)中有一个 e2e 测试项目,在config.ts中将 chrome 设置为目标浏览器

...
directConnect: true,
multiCapabilities: [
    {
      browserName: 'chrome',
      chromeOptions: {
        args: ["--headless", "--disable-gpu", "--window-size=1920x1080", "--no-sandbox"]
      }
    }
],
...

通过 gitlab-runner 的 shell 执行程序运行项目gitlab-runner exec shell run_tests工作正常,但如果我通过 gitlab-runner 的 docker 执行程序运行它gitlab-runner exec docker run_tests,它会在 gitlab-ci 脚本的yarn testcmd(基本上转换为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 安装吗?

4

1 回答 1

0

所以,我的预感是对的,它基本上没有安装 google chrome,而且因为我使用的是 alpine docker 镜像,所以安装 chrome也不是一件容易的事。因此,我必须使用来自https://askubuntu.com/a/196100/1217294的信息将我的 docker 映像更改node:<version>为基于 debian 的映像并包含 chrome 安装说明,仅排除s (在 gitlab 中不需要它们-runner 容器)并在 apt-get install 之后包括 and (绕过用户提示),并且它起作用了。这是我的 gitlab ci 脚本的样子:sudo-y

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
于 2021-05-07T09:13:59.193 回答