【发布时间】:2018-09-27 05:20:20
【问题描述】:
我想将我的整个 node.js 应用程序 docker 化并在 docker 容器中运行所有内容,包括测试。
如果您使用的是 PhantomJS,这听起来很容易,而且我确实尝试过,并且成功了。
我喜欢在 Chrome 中运行测试的一件事 - 易于调试。您可以启动 Karma 服务器,打开 devtools,在测试文件中设置断点(使用 debugger 语句)并运行 Karma - 它将连接到服务器运行测试,并在断点处停止,允许您从那里执行各种操作的东西。
现在如何在 docker 容器中执行此操作?
我是否应该在主机上启动 Karma 服务器(使用 Chrome)并以某种方式告诉容器内的 Karma-runner 连接到它以运行测试? (我该怎么做呢?)
是否可以在 docker 容器中运行 Chrome(这听起来确实是一个愚蠢的问题,但是当我尝试
docker search desktop时会出现一堆问题,所以我认为这是可能的(?)也许可以在 PhantomJS 中调试测试(尽管我怀疑它是否会像使用 Chrome 开发工具一样方便)
您能分享一下您在 docker 容器中运行和调试 Karma 测试的经验吗?
upd:我刚刚意识到可以在容器中运行 Karma 服务器,并且仍然可以通过从主机导航到 Karma 页面(例如 localhost:9876)来调试测试。
但是,我仍然有一个问题 - 我也打算设置并开始使用 Protractor。现在这些测试肯定需要在真正的浏览器中运行(PhantomJS 有太多的怪癖)。谁能告诉我如何从 docker 容器中运行 Protractor 测试?
【问题讨论】:
标签: node.js docker phantomjs karma-runner protractor