Nuxt/CONTRIBUTING.md
Jonas Galvez 61c0976cd2 Add 'Debugging tests on macOS' notes (#3724)
* Add 'Debugging tests on macOS' notes

* Add 'Debugging tests on macOS' notes (2)

* Add 'Debugging tests on macOS' notes (3)
2018-08-14 21:16:57 +02:00

2.0 KiB

Contributing to Nuxt.js

  1. Fork this repository to your own GitHub account and then clone it to your local device.
  2. Run npm install to install the dependencies.

Note that both npm and yarn have been seen to miss installing dependencies. To remedy that, you can either delete the node_modules folder in your example app and install again or do a local install of the missing dependencies.

  1. Add an example app to examples/ before writing any code.
  2. Create a fixture app under test/fixtures/. See others for examples.

To run an example or fixture app with your copy of Nuxt, do:

bin/nuxt examples/your-app
bin/nuxt test/fixtures/your-fixture-app

npm link could also (and does, to some extent) work for this, but it has been known to exhibit some issues. That is why we recommend calling bin/nuxt directly to run examples.

Once you've modified Nuxt and seen your modifications reflected correctly in your example app and fixture, add unit and, if necessary, e2e tests that can ensure its functionality and future maintanability. Study other tests carefully for reference.

Running specific tests

npm install jest -g
jest test/unit/test.js

Running test suites

yarn test

Or, per group:

yarn test:fixtures
yarn test:unit
yarn test:e2e

Debugging tests on macOS

Searching for getPort() will reveal it's used to start new Nuxt processes during tests. It's been seen to stop working on macOS at times and may require you to manually set a port for testing.

Another common issue is Nuxt processes that may hang in memory when running fixture tests. A ghost process will often prevent subsequent tests from working. Run ps aux | grep -i node to inspect any hanging test processes if you suspect this is happening.

Opening PRs

  • Please make sure your PR passes the lint test (npm run lint).
  • Please wait for tests to run and verify potential failures.