Testcafe에서 Docker 및 Electron과 함께 'resizeWindow'를 사용하는 방법은 무엇입니까?

Aug 21 2020

gitlab 으로 전자 앱을 테스트하는 동안 도커 컨테이너 내부의 TestcaferesizeWindow 에서 사용하는 데 문제 가 있습니다.

참고 : 로컬 설정 (Linux)에서 모든 테스트가 예상대로 작동하지만 도커 컨테이너 내부에서 resizeWindow작동하지 않는 것 같습니다. 컨테이너 내부의 다른 테스트도 작동합니다.

구성이 누락되었거나 xvfb사용해야 fluxbox합니까?

이 문제를 해결하는 방법에 대한 제안이 있습니까?


도커를 사용한 테스트 오류 :

$ yarn test-e2e-ci yarn run v1.22.4 $ node -r @babel/register ./internals/scripts/CheckBuildsExist.js && cross-env NODE_ENV=test testcafe electron:./ci ./test/e2e/DockerTest.e2e.ts --screenshots takeOnFails=true
 Running tests in:
 - Electron 9.0.4 / Linux 0.0
 Docker execution
 ✖ `ResizeWindow` works as expected 
   1) AssertionError: expected 1024 to deeply equal 100
      Browser: Electron 9.0.4 / Linux 0.0
          8 |
          9 |test('`ResizeWindow` works as expected ', async t => {
         10 |  await t.resizeWindow(100, 100);
         11 |  const innerWidth = await t.eval(() => window.innerWidth);
         12 |  const innerHeight = await t.eval(() => window.innerHeight);
       > 13 |  await t.expect(innerWidth).eql(100);
         14 |  await t.expect(innerHeight).eql(100);
         15 |});
         16 |
         at <anonymous>
      (/builds/myFancyProject/test/e2e/DockerTest.e2e.ts:13:30)
         at fulfilled
      (/builds/myFancyProject/test/e2e/DockerTest.e2e.ts:5:58)
 1/1 failed (8s)

경고 :

 Warnings (3):
 --
  Was unable to resize the window due to an error.
  The
  /builds/myFancyProject/node_modules/testcafe-browser-tools/bin/linux/glibc-64/resize
  process failed with the null exit code.
 --

사용 된 테스트 설정 :

ResizeWindow Testcafe 테스트

test('`ResizeWindow` works as expected ', async t => {
  await t.resizeWindow(100, 100);
  const innerWidth = await t.eval(() => window.innerWidth);
  const innerHeight = await t.eval(() => window.innerHeight);
  await t.expect(innerWidth).eql(100);
  await t.expect(innerHeight).eql(100);
});

gitlab yml 내에서 시작

- xvfb-run --server-num=99 --server-args='-ac -screen 0 1024x768x16' yarn test-e2e-ci

package.json

"test-e2e-ci": "node -r @babel/register ./internals/scripts/CheckBuildsExist.js && cross-env NODE_ENV=test testcafe electron:./ci ./test/e2e/ --screenshots takeOnFails=true",

./ci/.testcafe-electron-rc

{
  "mainWindowUrl": "../app/app.html",
  "appPath": "../app",
  "appArgs": "--no-sandbox"
}

테스트 된 Docker 이미지 :

circleci/node:latest-browsers

FROM node:lts-stretch

RUN apt-get update \
    && apt-get install -y xvfb \
    libnotify4 \
    libgconf2-4 \
    libnss3 \
    libxtst-dev \
    libc6 \
    libstdc++6 \
    libgcc1 \
    libgtk-3-0 \
    libasound2 \
    libxrender1 \
    libxss1

답변

2 mlosev Aug 24 2020 at 10:35

fluxbox도구 를 올바르게 설치하고 설정해야합니다 . TestCafe Docker 관련 파일의 예를 참조하십시오.

  • https://github.com/DevExpress/testcafe/blob/master/docker/Dockerfile
  • https://github.com/DevExpress/testcafe/blob/master/docker/testcafe-docker.sh