I’m having some weird problems with testing a Meteor app. I use CircleCI to automate testing and the config is pretty simple:
machine:
environment:
YARN_VERSION: 0.18.1
PATH: "${PATH}:${HOME}/.yarn/bin:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
dependencies:
pre:
- |
if [[ ! -e ~/.yarn/bin/yarn || $(yarn --version) != "${YARN_VERSION}" ]]; then
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION
fi
cache_directories:
- ~/.meteor
- ~/.yarn
- ~/.cache/yarn
override:
- meteor || curl https://install.meteor.com | /bin/sh
- yarn install
- mocha || npm install -g mocha
- spacejam || npm install -g spacejam
test:
override:
- npm run "test:ci"
I follow Mantra conventions and put all the tests into **/meteor_tests/ folders. Finally, I use spacejam and practicalmeteor:mocha:
spacejam test --once --driver-package=practicalmeteor:mocha
For some reason, it seems to only be working locally. I can see it from the output of this command: if I put a test that fails, I can see it, just as I can see when all the tests pass.
Now, the problem with CircleCI is that, looks like, it cannot install Phantom properly, as it exits with code 6:
> spacejam test --once --driver-package=practicalmeteor:mocha
spacejam: spawning meteor
[[[[[ Tests ]]]]]
=> Started proxy.
=> Meteor 1.4.3.1 is available. Update this project with 'meteor update'.
=> Started MongoDB.
spacejam: meteor mongodb is ready
=> Started your app.
=> App running at: http://localhost:4096/
spacejam: meteor is ready
spacejam: spawning phantomjs
phantomjs: Running tests at http://localhost:4096/local using test-in-console
phantomjs: There is no route for the path: /local
http://localhost:4096/packages/kadira_flow-router.js?hash=5c81da2c1311a60595a8b977d2b3c02eab0f5cde: 519
spacejam: phantomjs exited with code: 6
spacejam: killing meteor
spacejam: meteor killed with signal: SIGTERM
spacejam: Unhandled error in meteor client side code. Exiting.
I also tried dispatch:mocha as a driver, but it didn’t work even on my local machine, giving me errors and “0 tests passed (0ms)” kind of messages.
Am I missing something here? Did I miss a certain configuration or package maybe?