Stephen Melrose Stephen Melrose - 1 year ago 64
Node.js Question

How do you install and run Mocha, the Node.js testing module? Getting "mocha: command not found" after install

I'm having trouble getting Mocha to work as expected, and I'd love to say as documented, but there (appears) to not be much documentation on actually getting the thing running.

I've installed it using

npm
(both globally and locally), and each time when I run it I get,

$ mocha
mocha: command not found


Ok, so I figured it's not in my
PATH
, so I tried running it directly,

$ ./node_modules/mocha/bin/mocha
execvp(): No such file or directory


Finally, I tried hitting the other
bin
file, and got,

$ ./node_modules/mocha/bin/_mocha
path.existsSync is deprecated. It is now called `fs.existsSync`.

.

✔ 1 tests complete (1ms)


Forgive if this is a stupid question as I'm new to Node.js, but how can I just execute my tests with a single command? Vows seems to let you, but I've heard Mocha is the better choice, I just can't seem to get it working correctly.

And any thoughts on the error I got above in my third attempt?

Thanks,

Steve

Edit:

I'm running,


  • Ubuntu 11.10 64-bit

  • Node.js 0.7.5

  • npm 1.1.8

  • mocha 0.14.1

  • should 0.6.0


Answer Source

you don't want your library tests to fail depending on the machine setup (mocha as global, global mocha version, etc), the way to use the local mocha that works cross-platform is:

node node_modules/.bin/mocha

npm puts aliases to all the binaries in your dependencies on that special folder. Finally, npm will add node_modules/.bin to the PATH automatically when running an npm script, so in your package.json you can do just:

"scripts": {
  "test": "mocha"
}

and invoke it with

npm test
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download