We are excited that you are interested in contributing to Meteor Up. Bug Fixes and feature implementations can be submitted as pull request on the dev branch. Make sure your modifications does not break any of the current tests.
Our test suit is written using mocha + shelljs and parallelled using GNU parallel + docker. Parallel testing is currently supported for Ubuntu 14.04 and 16.10.
Before running the tests, make sure the server's user account running the tests is in the sudoers list. The test suit depends on node, docker, meteor and gnu parallel. Before the tests start, it will try to automatically install missing dependencies.
The test suit depends on node, docker, and meteor. Please make sure they are installed before running the tests.
Parallel testing works by creating docker instances per each test case given and actually deploying a meteor app inside that using meteor up. So the box running tests should have a higher CPU/RAM depending on your MOCHA_PARALLEL
env setting. This is only supported on linux.
Start parallel tests with:
npm run test:parallel
If the server or your local computer can not handle parallel tests, or you are running the tests on Windows or OSX, you can run tests serially. It will create one docker container that all of the tests will use.
npm test
Since we are using docker inside docker for parallel testing, Aufs
storage driver for docker(the default) should be disabled. Our test script automatically does this by setting DOCKER_OPTS="--storage-driver=devicemapper"
in /etc/default/docker
. In case you installed docker yourself, you should set this manually.
Write tests for plugins in <meteor-up dir>/src/plugins/<plugin name>/__tests__/index.js
.
To run the test in parallel, add a matching regex to the <meteor-up dir>/tests/tests.list
on a new line.
--watch
-g <regex>
--path <test files>
Defaults to src/**/__tests__/**/*.js
--plugin <plugin name>
Runs tests for plugin. Overrides --path
--skip-pull
To speedup running the tests, it creates a docker image before the first run that has docker installed and has pulled all of the images used during the tests. This option disables creating or using the image.
For example:
npm test -- --watch
We also welcome financial contributions in full transparency on our open collective. Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
Thank you to all the people who have already contributed to meteor-up!
Thank you to all our backers! [Become a backer]
Thank you to all our sponsors! (please ask your company to also support this open source project by becoming a sponsor)