如何在GitLab CI-CD管道中运行React Jest e2e测试?

时间:2020-03-13 03:19:43

标签: reactjs jestjs gitlab-ci e2e-testing

场景:

我已经使用Jest为React Web应用程序配置了e2e测试。要在本地运行e2e测试,我必须使用npm start命令从一个终端窗口本地启动服务器,并从另一个终端窗口执行测试命令npm run test:e2e。我的电脑上同时安装了Chrome浏览器和Firefox浏览器,因此e2e测试在本地正常运行。

现在,我想将这些e2e测试作为GitLab CI-CD管道的一部分运行,并遇到以下问题:

  1. 如何确保GitLab运行程序可以使用浏览器(Chrome / Firefox)?我得到了一些教程,建议在管道步骤中安装所需的浏览器。这是最好的方法吗?

  2. 是否可以在不安装浏览器的情况下实现相同的目的?例如:使用selenium_standalone-chrome张图片?如果是,该怎么办?

高度赞赏对示例链接/代码的任何引用。谢谢。

1 个答案:

答案 0 :(得分:0)

在GitLab CI-CD管道中(目前仅适用于Chrome浏览器):

E2Etest:
  stage: e2e
  image: node:10.15.3
  variables:
    CI_DEBUG_TRACE: "true"
  allow_failure: false
  script:
    - set -e
    - npm install


    - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
    - sh -c 'echo deb http://dl.google.com/linux/chrome/deb/ stable main > /etc/apt/sources.list.d/google.list'
    - apt-get update
    - apt-get install -y xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic xvfb x11-apps imagemagick google-chrome-stable


    - npm run test:e2e:chrome
    - pkill node
  artifacts:
    paths:
      - coverage
    expire_in: 1 hr