是否可以在docker中运行我的流星测试?

时间:2015-11-04 19:41:46

标签: testing meteor docker jasmine

一旦我用我的Meteor应用程序构建了我的容器,我真的希望能够去

docker run me/myapp velocity test-app --ci --once --settings settings-test.json

如果成功,请将其退出0,在这种情况下,我会将其推送到docker hub,将其部署到某处等。

然而,当我尝试这个时,它只是挂起:

[velocity] is in continuous integration mode
[velocity] mocha is starting a mirror at http://localhost:56381/.
[velocity] *** Meteor Tools is installing *** 
This takes a few minutes the first time.
[velocity] You can see the mirror logs at: tail -/app/.meteor/local/log/mocha.log

我按照https://github.com/meteor-velocity/velocity-examples使用茉莉花(我从Mocha开始,但转过来看它是否有所不同)。

检查我发现的.meteor/local/log文件jasmine-client- unit.log底部有这个:

WARN [watcher]: [39m Pattern "/app/tests/jasmine/client/unit/**/*-+(stub|stubs|mock|mocks).+(js|coffee|litcoffee|coffee.md)" does not match any file.
WARN [karma]: [39m No captured browser, open http://localhost:9876/
INFO [karma]: [39m Karma v0.13.9 server started at http://localhost:9876/
INFO [launcher]: [39m Starting browser Chrome
ERROR [launcher]: [39m No binary for Chrome browser on your platform.
Please, set "CHROME_BIN" env variable
Parent process ( 725 ) is dead! Exiting jasmine-client-unit

Chrome显然不会在docker中提供 - 如果此时安装了phantomjs并指定为运行选项吗?如果指定了--ci选项,我原本预计会出现这种情况吗?

感谢。

1 个答案:

答案 0 :(得分:3)

理想情况下,您应该使用Chrome或Firefox等真实浏览器进行自动化测试,而不是使用PhantomJS。您可以使用Xvfb无首地运行浏览器。

这些可能很有用:

http://codeutopia.net/blog/2013/07/13/headless-chromefirefox-testing-in-nodejs-with-selenium-and-xvfb/

http://elementalselenium.com/tips/38-headless

Selenium是进行测试的方法。 IMO最好的设置是使用像Jenkins或TeamCity这样的CI服务器,安装Xvfb,并在Jenkins中有一个测试/部署shell脚本,如:

#!/bin/sh

set -ex

cd $WORKSPACE
export VELOCITY_CI=1

meteor --test --settings $WORKSPACE/.deploy-staging/settings.json

cd .deploy-staging
mupx setup
mupx deploy

(注意,这里没有实现Xvfb)。这个测试并不完全正常,我还没有自己跳进Xvfb,虽然我知道这是正确的方向。

我正在使用mupx部署我的应用程序,它会自动在远程服务器上为我创建一个Docker实例并完全处理部署。