gpt4 book ai didi

node.js - 容器 Circleci/node :10. 14-浏览器 - 错误 : euid ! = 0,目录/tmp/.X11-unix 将不会被创建

转载 作者:行者123 更新时间:2023-12-02 18:32:22 29 4
gpt4 key购买 nike

我正在尝试使用 TestCafe 在 CircleCi 上运行浏览器测试。我已经关注了这个documentation 。主要问题是chrome浏览器打不开。 CircleCi 能够成功下载镜像,因为 spin 环境已通过。

我在 CircleCi 上的下一步(容器circleci/node:11.6.0-browsers)中遇到问题,这会引发错误:

$ _XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.

Job was canceled

稍后 UI 测试步骤会抛出此错误:

$ testcafe chrome:headless uitests/tests/* -r xunit:/tmp/test-results/res.xml -e
ERROR Was unable to open the browser "chrome:headless" due to an error.

Error: Unable to run the browser. The browser path or command template is not specified.
at checkBrowserPath$ (/rp-web/node_modules/testcafe-browser-tools/lib/api/open.js:47:23)
at tryCatch (/rp-web/node_modules/testcafe-browser-tools/node_modules/babel-runtime/regenerator/runtime.js:72:40)
at Generator.invoke [as _invoke] (/rp-web/node_modules/testcafe-browser-tools/node_modules/babel-runtime/regenerator/runtime.js:334:22)
at Generator.prototype.(anonymous function) [as next] (/rp-web/node_modules/testcafe-browser-tools/node_modules/babel-runtime/regenerator/runtime.js:105:21)
at tryCatch (/rp-web/node_modules/testcafe-browser-tools/node_modules/babel-runtime/regenerator/runtime.js:72:40)
at invoke (/rp-web/node_modules/testcafe-browser-tools/node_modules/babel-runtime/regenerator/runtime.js:146:20)
at /rp-web/node_modules/testcafe-browser-tools/node_modules/babel-runtime/regenerator/runtime.js:191:11
at new Promise (<anonymous>)
at new F (/rp-web/node_modules/core-js/library/modules/$.export.js:30:36)
at callInvokeWithMethodAndArg (/rp-web/node_modules/testcafe-browser-tools/node_modules/babel-runtime/regenerator/runtime.js:190:16)

Type "testcafe -h" for help.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Exited with code 1

这就是我的 yml 的样子:

jobs:
build-and-test:
working_directory: /repo
docker:
- image: node:10.5.0
- image: circleci/node:11.6-browsers

此外,尝试在没有沙箱的情况下运行命令,但得到了相同的错误:

testcafe chrome:headless uitests/tests/* -r xunit:/tmp/test results/res.xml -e --no-sandbox

我能够成功地在本地运行,但无法在 CircleCi 上运行。谁能帮忙解决这个问题吗?

最佳答案

我认为从配置中删除“- image: node:10.5.0”行将修复这些错误。我创建了一个示例项目 ( https://github.com/AndreyBelym/testcafe-example-circle-ci ) 并配置了 CircleCI 构建 ( https://circleci.com/gh/AndreyBelym/testcafe-example-circle-ci ) 来测试我的假设。

如果您在构建作业配置中指定多个容器镜像,则第一个镜像将被视为主容器,所有其他镜像将被视为辅助容器。所有构建步骤都在主容器中执行,辅助容器在后台启动,并且只能通过共享网络访问构建步骤。您可以在Choosing an Executor Type - Using Multiple Docker Images中阅读更多相关信息。 .

您的构建作业配置:

jobs:
build-and-test:
working_directory: /repo
docker:
- image: node:10.5.0
- image: circleci/node:11.6-browsers

表示您尝试在未安装任何浏览器的node:10.5.0中运行TestCafe。这就是为什么 TestCafe 找不到浏览器并给出“错误:无法运行浏览器。未指定浏览器路径或命令模板。” 错误。

此外,由于 node:10.5.0 使用权限较低的特殊用户帐户,node:11.6.0-browsers 为您提供 "_XSERVTransmkdir : ERROR: euid != 0" 错误,因为它需要管理员权限才能启动 Xvfb - 虚拟 X11 服务器(即虚拟桌面)。

关于node.js - 容器 Circleci/node :10. 14-浏览器 - 错误 : euid ! = 0,目录/tmp/.X11-unix 将不会被创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241886/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com