如何在 Testcafe 中将 'resizeWindow' 与 docker 和电子一起使用?
How to use 'resizeWindow' with docker and electron in Testcafe?
在使用 gitlab 测试电子应用程序时,我在 docker 容器中使用 Testcafe 中的 resizeWindow
时遇到问题。
注意:在本地设置 (linux) 上所有测试都按预期工作,但在 docker 容器内 resizeWindow
似乎没有上班。容器内的其他测试也有效。
也许我缺少 xvfb
的任何配置,或者我应该使用 fluxbox
?
有什么解决办法的建议吗?
docker测试错误:
$ 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
您需要正确安装和设置 fluxbox
工具。
请参阅 TestCafe docker 相关文件中的示例:
在使用 gitlab 测试电子应用程序时,我在 docker 容器中使用 Testcafe 中的 resizeWindow
时遇到问题。
注意:在本地设置 (linux) 上所有测试都按预期工作,但在 docker 容器内 resizeWindow
似乎没有上班。容器内的其他测试也有效。
也许我缺少 xvfb
的任何配置,或者我应该使用 fluxbox
?
有什么解决办法的建议吗?
docker测试错误:
$ 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
您需要正确安装和设置 fluxbox
工具。
请参阅 TestCafe docker 相关文件中的示例: