在 Cypress 中禁用 GPU 加速

Disabling GPU Acceleration in Cypress

提问人:Tommy VDFN 提问时间:8/22/2022 更新时间:8/22/2022 访问量:8709

问:

我在 Jenkins 的 Docker 容器中运行 Cypress。

这是我的Dockerfile:

#Base image taken from:https://github.com/cypress-io/cypress-docker-images
FROM cypress/browsers:node14.17.0-chrome91-ff89
#Create the folder where our project will be stored
RUN mkdir /my-cypress-project
#We make it our workdirectory
WORKDIR /my-cypress-project
#Let's copy the essential files that we MUST use to run our scripts.
COPY ./package.json .
COPY ./cypress/tsconfig.json .
COPY ./cypress.config.ts .
COPY ./cypress ./cypress
RUN pwd
RUN ls
#Install the cypress dependencies in the work directory
RUN npm install
RUN npm audit fix
RUN npx cypress verify
RUN apt-get install -y xvfb
RUN google-chrome --disable-gpu --no-sandbox --headless
#Executable commands the container will use[Exec Form]
ENTRYPOINT ["npx","cypress","run"]
#With CMD in this case, we can specify more parameters to the last entrypoint.
CMD [""]    

我是这样构建的:

docker build -t my-cypress-image:1.1.0 .

并像这样运行:

docker run -v '$PWD':/my-cypress-project -t my-cypress-image:1.1.0 --spec cypress/e2e/pom/homeSauce.spec.js --headless --browser chrome --config-file=/my-cypress-project/cypress.config.ts

我在控制台中收到此错误:

libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
[218:0822/100658.356057:ERROR:gpu_memory_buffer_support_x11.cc(44)] dri3 extension not supported.
Could not find a Cypress configuration file.

We looked but did not find a cypress.config.ts file in this folder: /my-cypress-project

现在据我所知,这是由于浏览器以 GPU 加速运行......如何禁用它?

我尝试将其粘贴到我的索引 .js 文件中:

// cypress/plugins/index.js
module.exports = (on, config) => {
  on('before:browser:launch', (browser = {}, launchOptions) => {
    console.log(launchOptions.args)

    if (browser.name == 'chrome') {
      launchOptions.args.push('--disable-gpu')
    }

    return launchOptions
  })
}

但我仍然得到完全相同的错误......

任何帮助将不胜感激! 干杯

JavaScript 节点:.js Linux 谷歌浏览器 赛普拉斯

评论

0赞 Alopwer 8/22/2022
也许我错了,但它说:我们查看了但在此文件夹中没有找到cypress.config.ts文件:/my-cypress-project,你有这个配置吗?
0赞 Tommy VDFN 8/23/2022
@Alopwer,是的,配置文件已正确放置。我尝试了其他 Cypress 命令以查看它们是否有效(例如验证),并且它们都可以工作,这绝对是导致问题的实际测试。我读到的关于这个确切错误的每个线程都指向禁用 GPU 加速,但没有一个说明如何做到这一点......
0赞 Alopwer 8/23/2022
检查过这个吗?github.com/cypress-io/github-action/issues/564
0赞 Tommy VDFN 8/23/2022
@Alopwer是的,也看到了。尝试了其中的所有内容:更改 cypress 版本、指定配置文件、尝试不同的 docker 基础映像......无。
0赞 Alopwer 8/23/2022
它到底在哪里失败了?在 RUN npx cypress 上验证?

答: 暂无答案