gpt4 book ai didi

javascript - 如何调试在 testcafe/testcafe docker 容器中运行的 Testcafe 浏览器?

转载 作者:搜寻专家 更新时间:2023-10-31 23:39:41 26 4
gpt4 key购买 nike

在 Page 类中测试了 React 应用程序的登录功能:

  async login(t) {
console.log('starting login...');
debugger;
this.logBrowserMessages(t);

await this.loginModal({ visibilityCheck: true });
await t
.expect(this.loginModal.visible)
.ok()
// then log the user in etc...

以及测试,在本地运行时通过但在容器中失败

test.requestHooks(mock)('user can log in', async t => {

await page.login(t);

// Make sure test user's orders render.
await t.expect(page.orders.childNodeCount).gt(1, { timeout: 10000 });

测试在本地通过但在容器中运行时失败(登录不起作用)。

当我在本地运行测试时,它会按预期进行调试:

testcafe chrome --inspect-brk=9230 ./tests/login.test.js --skip-js-errors

进程 node_modules/testcafe/lib/cli 出现在我的 chrome://inspect/#devices 中,正如预期的那样。

但是,当我在 testcafe docker 容器中运行 testcafe 时,它​​不会使用以下任何命令进行调试:

docker run --expose 9230 -p 9230:9230 -e BASIC_AUTH_USER -e BASIC_AUTH_PASS -e NODE_ENV=docker -e TEST_USER -e TEST_PASS --shm-size=1gb -v `pwd`:/tests - v `pwd`/screenshots/docker:/screenshots testcafe/testcafe 'chromium --no-sandbox' --inspect-brk=0.0.0.0:9230 -S -s '/screenshots' --skip-js-errors/tests/**/login.test.js

docker run --expose 9230 -p 9230:9230 -e\"NODE_PATH=/opt:/opt/testcafe/node_modules:/tests/node_modules\"-e BASIC_AUTH_USER -e BASIC_AUTH_PASS -e NODE_ENV=docker -e TEST_USER -e TEST_PASS --shm-size=1gb -v `pwd`:/tests -v `pwd`/screenshots/docker:/screenshots testcafe/testcafe 'chromium --no-sandbox' --inspect-brk= 0.0.0.0:9230 -S -s '/screenshots' --skip-js-errors/tests/**/login.test.js

docker run --expose 9230 -p 9230:9230 -e BASIC_AUTH_USER -e BASIC_AUTH_PASS -e NODE_ENV=docker -e TEST_USER -e TEST_PASS --shm-size=1gb -v `pwd`:/tests - v `pwd`/screenshots/docker:/screenshots testcafe/testcafe 'chromium --no-sandbox' --inspect-brk=127.0.0.1:9230 -S -s '/screenshots' --skip-js-errors/tests/**/login.test.js

docker run --expose 9230 -p 9230:9230 -e\"NODE_PATH=/opt:/opt/testcafe/node_modules:/tests/node_modules\"-e BASIC_AUTH_USER -e BASIC_AUTH_PASS -e NODE_ENV=docker -e TEST_USER -e TEST_PASS --shm-size=1gb -v `pwd`:/tests -v `pwd`/screenshots/docker:/screenshots testcafe/testcafe --inspect-brk=0.0.0.0:9230 --浏览器'chromium --no-sandbox' -S -s '/screenshots' --skip-js-errors/tests/**/login.test.js

docker run --expose 9230 -p 9230:9230 -e\"NODE_PATH=/opt:/opt/testcafe/node_modules:/tests/node_modules\"-e BASIC_AUTH_USER -e BASIC_AUTH_PASS -e NODE_ENV=docker -e TEST_USER -e TEST_PASS --shm-size=1gb -v `pwd`:/tests -v `pwd`/screenshots/docker:/screenshots testcafe/testcafe 'chromium --no-sandbox' -S -s '/截图' --skip-js-errors --inspect-brk=9230/tests/**/login.test.js

我正在使用的容器是否有一些我不知道的限制?我之前调试过在 Docker 容器中运行的 Node 进程,我知道这是可以做到的。但那是不久前的事了。我错过了什么吗?

最佳答案

您可以使用NODE_OPTIONS 环境变量来启用远程调试:

docker run -it --rm -p 9229:9229 -e NODE_OPTIONS="--inspect-brk=0.0.0.0:9229" -v /host/path/to/tests:/tests testcafe/testcafe 'chromium --no-sandbox' /tests/test.js

如果您不使用 docker-machine,您可以在浏览器中打开 http://localhost:9229/json 并导航到指定的 DevTools URL devtoolsFrontendUrl 属性。

否则,使用docker-machine ip 命令获取您的Docker VM 的IP 地址并打开http://${DOCKER_MACHINE_IP}:9229/json 以获取 DevTools URL。

关于javascript - 如何调试在 testcafe/testcafe docker 容器中运行的 Testcafe 浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503435/

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