繁体   English   中英

在GitLab CI作业上运行TestCafe Docker Image时出错。 尝试在BrowserStack上执行自动端到端测试

[英]Error running TestCafe Docker Image on GitLab CI job . Trying to execute automated end-to-end tests on BrowserStack

我们正在尝试在gitlab CI作业触发的BrowserStack上运行testcafe端到端测试。 但是,我们看到一个错误:

Error: spawn /home/user/.browserstack/BrowserStackLocal ENOENT

我们正在关注选项1 - 使用TestCafe Docker Image https://devexpress.github.io/testcafe/documentation/continuous-integration/gitlab.html ,它为我们的.gitlab-ci.yml文件添加了一个端到端的测试工作。 我们创建了一个在.base_e2e作业中使用的e2e_dev作业库(见下文)

我们还使用了testcafe-browser-provider-browserstack npm依赖项 ,它允许我们的testcafe端到端测试在BrowserStack上执行,如https://devexpress.github.io/testcafe/documentation/using-testcafe/所述常见的概念/浏览器/浏览器的support.html#浏览器,在云测试服务

这是gitlab CI作业错误的副本:

Running with gitlab-runner 11.7.0 (8bb608ff)
  on ec2-docker-runner 1c5ac6dc
Using Docker executor with image testcafe/testcafe ...
Pulling docker image testcafe/testcafe ...
Using docker image sha256:f4d0d6abb93c9 for testcafe/testcafe ...
Running on runner-1c5ac6dc-project-7261073-concurrent-0 via ip-10-250-5-194...
Fetching changes...
Removing build/
Removing coverage/
Removing node_modules/
Removing stats.json
HEAD is now at 8574401 Add space before script property
Checking out 8574401c as feature/e2e-on-pipeline...
Skipping Git submodules setup
Downloading artifacts for install_dependencies (150115951)...
Downloading artifacts from coordinator... ok        id=150115951 responseStatus=200 OK token=yMPpwZa1
Downloading artifacts for test (150115953)...
Downloading artifacts from coordinator... ok        id=150115953 responseStatus=200 OK token=pjsisESV
Downloading artifacts for build_dev (150115954)...
Downloading artifacts from coordinator... ok        id=150115954 responseStatus=200 OK token=6hsG8sxx
$ /opt/testcafe/docker/testcafe-docker.sh "browserstack:Chrome@53.0:Windows 10" tests/e2e
Using locally installed version of TestCafe.
Error while trying to execute binary { Error: spawn /home/user/.browserstack/BrowserStackLocal ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:232:19)
    at onErrorNT (internal/child_process.js:407:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn /home/user/.browserstack/BrowserStackLocal',
  path: '/home/user/.browserstack/BrowserStackLocal',
  spawnargs:
   [ '--daemon',
     'start',
     '--log-file',
     '/dev/null',
     '--key',
     'nyyp6nnWiL2S6Y7HkvrH',
     '--local-identifier',
     1548265103368,
     '--enable-logging-for-api' ],
  cmd:
   '/home/user/.browserstack/BrowserStackLocal --daemon start --log-file /dev/null --key nyyp6nnWiL2S6Y7HkvrH --local-identifier 1548265103368 --enable-logging-for-api' }

完整的.gitlab-ci.yml文件

image: node:8-alpine

stages:
- e2e

#############
# Job Bases #
#############
.base_e2e:
  stage: e2e
  image:
    name: testcafe/testcafe
    entrypoint: ["/bin/sh", "-c"]
  script:
    - /opt/testcafe/docker/testcafe-docker.sh "browserstack:Chrome@53.0:Windows 10" tests/e2e

#############
# Jobs      #
#############
e2e_dev:
  extends: .base_e2e
  variables:
    ENVIRONMENT: dev
    TEST_E2E_APP_URL: https://$ENVIRONMENT.example.com
  only:
    - /^feature/.*$/
    - /^fix/.*$/
    - /^bug/.*$/
  when: manual

附加信息

当我们运行以下命令纱线即yarn test:e2e_pipeline执行端到端测试,并自动上传到BrowserStack的视频记录没有问题。

"scripts": {
    "test:e2e_all": "testcafe 'chrome,firefox' tests/e2e",
    "test:e2e_pipeline": "testcafe 'browserstack:Chrome@53.0:Windows 10' tests/e2e"
  },

我们的package.json有以下devDependencies

"devDependencies": {
    "testcafe": "^0.23.3",
    "testcafe-browser-provider-browserstack": "^1.7.0",
}

您不能将BrowserStack Local与官方TestCafe镜像一起使用。 TestCafe泊坞窗图像基于alpine:edge图像。 BrowserStack Local不支持Alpine Linux ,它的团队没有计划支持这个操作系统。 请在此主题https://github.com/browserstack/browserstack-local-nodejs/issues/32中查看有关它的讨论。 作为解决方法,您可以尝试基于BrowserStack Local支持的操作系统构建自己的docker镜像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM