26
votes

I am currently using Nitrous, which shouldn't matter, but I needed to install mocha so I typed in:

npm install - g mocha.

Everything installed and when I try to run mocha in my command line I get the following error:

/home/action/.parts/lib/node_modules/mocha/bin/_mocha:454
if (!files.length) throw new Error("cannot resolve path (or pattern) '"

Error: cannot resolve path (or pattern) 'test/unit'
at lookupFiles (/home/action/.parts/lib/node_modules/mocha/bin/_mocha:454:32)
at runAgain (/home/action/.parts/lib/node_modules/mocha/bin/_mocha:305:24)
at Array.forEach (native)
at Object. (/home/action/.parts/lib/node_modules/mocha/bin/_mocha:304:6)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3

Does anyone know how to solve this?

7
Worth noting that this error also shows up when the target directory does not have any tests in there.xmaestro

7 Answers

49
votes

By default, mocha includes ./test/*.js. So if that is where your tests live, just running mocha is all you need.

If you have your tests in test/unit, you might want to run mocha ./test/unit/*.js.

14
votes

The error you are getting is consistent with not having a file named test/unit and doing this:

$ mocha test/unit

Check that the file exists. (Actually, without a .js extension, I'd expect a directory rather than a file.) Check that you are in the right location when you issue your command.

7
votes

For anyone who gets this error when trying to run:

> npm test 

Make sure that your package.json file includes a test script in the format of:

<project-root>/<custom-path-to-test>/*.js

For example:

{
  "name": "Project Name",
   ...
  "scripts": {
    "test": "mocha ./node/test/*.js"
  }
   ...
}
2
votes

For those having mocha installed and have makefile like this:

test:
    @./node_modules/.bin/mocha -u tdd
.PHONY: test

but getting this error:

Error: cannot resolve path (or pattern) 'test'

you need to add folder "test" in the project folder. And your test files in that test folder

E.G.
 /home/you/nodejs/chapter3
  ├── lib
  ├── makefile
  ├── node_modules
  ├── package.json
  └── test
       ├── db.test.js

0
votes
npm install -g mocha
npm install mocha --save-dev  

write your test : test.js add below script in your package json file

"scripts": {
    "api:test": "node_modules/.bin/mocha --timeout 10000 --recursive test/"
},

go to your test directory : npm run api:test

https://github.com/shahing/Mocha-RestAPI-Tests

-1
votes

Just move all the tests to the test folder, If you dont have create one.

and in the package.json file just enter 'mocha'

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

and run

npm test

in the terminal.

-1
votes

If you run npm test it will execute the *.js files only in test directory not in sub directories.

If you also want to execute the *.js test files inside sub directories of test folder.

Follow the following steps :

  1. Create a mocha.opts file in test directory
  2. Add following line in mocha.opts file --recursive