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

前端 未结 5 966
暖寄归人
暖寄归人 2020-12-07 11:40

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 run

相关标签:
5条回答
  • 2020-12-07 11:59

    For windows :

    Package.json

      "scripts": {
        "start": "nodemon app.js",
        "test": "mocha"
      },
    

    then run the command

    npm run test
    
    0 讨论(0)
  • 2020-12-07 12:10

    While installing the node modules for mocha I had tried the below commands

    • npm install
    • npm install mocha
    • npm install --save-dev mocha
    • npm install mocha -g # to install it globally also

    and on running or executing the mocha test I was trying

    • mocha test
    • npm run test
    • mocha test test\index.test.js
    • npm test

    but I was getting the below error as:

    'Mocha' is not recognized as internal or external command

    So , after trying everything it came out to be just set the path to environment variables under the System Variables as:

    C:\Program Files\nodejs\

    and it worked :)

    0 讨论(0)
  • 2020-12-07 12:14

    since npm 5.2.0, there's a new command "npx" included with npm that makes this much simpler, if you run:

    npx mocha <args>
    

    Note: the optional args are forwarded to the command being executed (mocha in this case)

    this will automatically pick the executable "mocha" command from your locally installed mocha (always add it as a dev dependency to ensure the correct one is always used by you and everyone else).

    Be careful though that if you didn't install mocha, this command will automatically fetch and use latest version, which is great for some tools (like scaffolders for example), but might not be the most recommendable for certain dependencies where you might want to pin to a specific version.

    You can read more on npx here


    Now, if instead of invoking mocha directly, you want to define a custom npm script, an alias that might invoke other npm binaries...

    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
    
    0 讨论(0)
  • 2020-12-07 12:14

    After further reading, and confirmation from Linus G Thiel above, I found I simply had to,

    • Downgrade to Node.js 0.6.12
    • And either,
      • Install Mocha as global
      • Add ./node_modules/.bin to my PATH
    0 讨论(0)
  • 2020-12-07 12:14

    To run Mocha with mocha command from your terminal you need to install mocha globally on this machine:

    npm install --global mocha
    

    Then cd to your projectFolder/test and run mocha yourTestFileName.js


    If you want to make mocha available inside your package.json as a development dependency:

    npm install --save-dev mocha
    

    Then add mocha to your scripts inside package.json.

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

    Then run npm test inside your terminal.

    0 讨论(0)
提交回复
热议问题