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

在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显示在my中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 --browsers '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 '/screenshots' --skip-js-errors --inspect-brk=9230 /tests/**/login.test.js

我所使用的容器有一些我不知道的限制吗?我之前已经调试了在Docker容器中运行的Node进程,我知道可以做到。但这是前一段时间。我想念什么吗?

安德烈·贝利姆(Andrey Belym)

您可以使用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在浏览器中打开并导航到该devtoolsFrontendUrl属性中指定的DevTools URL

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法调试在Docker容器中运行的TestCafe浏览器

来自分类Dev

在Testcafe中开发测试时保持浏览器打开

来自分类Dev

在无头的Docker容器中的Chrome上运行Testcafe脚本

来自分类Dev

TestCafe调试页脚阻止页面交互

来自分类Dev

停止活动的Testcafe运行

来自分类Dev

TestCafe:跨不同浏览器的并发测试问题

来自分类Dev

TestCafe,HTTPS和多浏览器测试

来自分类Dev

如何在testcafe中模拟Date()?

来自分类Dev

如何等待元素在 TestCafe 中消失?

来自分类Dev

如何使用Testcafe在高山docker图像内运行电子?

来自分类Dev

TestCafe框架的用法

来自分类Dev

让 TestCafe 识别 dotenv 变量

来自分类Dev

TestCafe中的默认选择器超时

来自分类Dev

尝试调试 TestCafe 测试时 VS 代码出错

来自分类Dev

使用testcafe运行测试之前如何单击按钮

来自分类Dev

TestCafe Studio:如何导入ES模块,以便可以在TestCafe脚本中使用它们?

来自分类Dev

TestCafe-如何遍历不同元素类型的选择器?

来自分类Dev

Testcafe-为固定装置中的每个测试启动新的浏览器会话。我们如何避免这种情况

来自分类Dev

如何在TestCafe中单击未渲染的虚拟元素

来自分类Dev

如何减慢TestCafe中的测试执行速度?

来自分类Dev

testcafe是否支持图像粘贴?

来自分类Dev

是否可以扩展TestCafe Studio?

来自分类Dev

TestCafe t.eval与ClientFunction

来自分类Dev

通过智能运行操作执行testcafe

来自分类Dev

在无头容器中用电子发出运行中的testcafe

来自分类Dev

TestCafe:选择器中的选择器

来自分类Dev

是否可以在Express.js中运行TestCafe测试?

来自分类Dev

Testcafe-如何将JSON响应数据用作变量

来自分类Dev

TestCafe-如何通过auth0登录使用角色

Related 相关文章

热门标签

归档