一旦我用我的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
选项,我原本预计会出现这种情况吗?
感谢。
答案 0 :(得分:3)
理想情况下,您应该使用Chrome或Firefox等真实浏览器进行自动化测试,而不是使用PhantomJS。您可以使用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实例并完全处理部署。