2015-04-20 121 views
3

我想对我的整个node.js应用程序进行dockerize并在Docker容器中运行所有内容,包括测试。在Docker容器中运行和调试测试

这听起来很简单,如果你使用PhantomJS,我真的试过了,它工作。

我喜欢在Chrome中运行测试的一件事 - 易于调试。您可以启动Karma服务器,打开devtools,在测试文件中设置断点(使用 debugger语句)并运行Karma - 它将连接到服务器运行测试,并停在断点处,允许您从那里做各种事情。

现在我该怎么做码头集装箱?

  • 我应该在托管计算机上启动Karma服务器(使用Chrome)并告诉容器内的Karma runner连接到它以运行测试吗? (我该怎么做呢?)

  • 是否有可能在Docker容器中运行Chrome(它听起来像一个愚蠢的问题,但当我尝试docker search desktop一堆东西出现,所以我认为这是可能的(?)

  • 也许有可能在PhantomJS调试测试(虽然我怀疑这将是为方便与铬devtools)

请您分享您在运行和调试噶测试体验码头集装箱?

upd:我刚刚意识到可以在容器中运行Karma服务器,并且仍然可以通过导航到Karma页面来调试测试(例如, localhost:9876)。

但是,我仍然有一个问题 - 我打算设置并开始使用量角器。现在,这些测试肯定需要在真正的浏览器中运行(PhantomJS有太多怪癖)。任何人都可以告诉我如何从码头集装箱内部运行量角器测试?

回答

3

我不知道Protractor和它的工作流程,但如果你需要一个容器内的浏览器,你看到this文章?我会冒昧地引用这个:

$ docker run -it \ 
    --net host \ # may as well YOLO 
    --cpuset 0 \ # control the cpu 
    --memory 512mb \ # max memory it can use 
    -v /tmp/.X11-unix:/tmp/.X11-unix \ # mount the X11 socket 
    -e DISPLAY=unix$DISPLAY \ # pass the display 
    -v $HOME/Downloads:/root/Downloads \ # optional, but nice 
    -v $HOME/.config/google-chrome/:/data \ # if you want to save state 
    -v /dev/snd:/dev/snd --privileged \ # so we have sound 
    --name chrome \ 
    jess/chrome 
+0

哇......它看起来很酷。谢谢! – Agzam

+0

要在Mac上运行此链接至关重要https://github.com/docker/docker/issues/8710 –

相关问题