How can I run mocha with npm script?

22,566

Solution 1

Your script definition should not include node:

"scripts": {
    "test": "./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec"
},

Or, if mocha is installed globally:

"scripts": {
    "test": "mocha tests/**/*Test.js --reporter spec"
},

See also: Configure node npm package.json so that "npm test" works on both unix and windows.

Update: Ah is see you are working on windows, try changing the script as mentioned in the above post:

"testOnWindowsUseThis" : "node node_modules/mocha/bin/mocha"

Solution 2

Use npx mocha if npm run test doesn't work.

Share:
22,566
Kris
Author by

Kris

Updated on June 18, 2021

Comments

  • Kris
    Kris almost 3 years

    I have implemented a testcase for my script and it runs pretty fine when I execute it in Webstorm with the configuration for mocha.

    The name of my test script is adminTest.js.

    Now I like to have a npm script to run it from the console or later from the build server.

    Therefor I have made a script entry in my package.json

    Here is the complete file:

    {
      "name": "cdh",
      "version": "0.0.1",
      "description": "CDH connector",
      "main": "cdh.js",
      "private" : true,
      "dependencies": {
        "cli-color": "^1.0.0",
        "handlebars": "^4.0.3",
        "sync-request": "^2.0.1",
        "jslint": "^0.9.3",
        "xmldom": "^0.1.19",
        "xpath": "^0.0.9",
        "mocha": "2.3.3 ",
        "proxyquire": "1.7.3",
        "mocha-sinon": "1.1.4",
        "jasmine" : "2.3.2",
        "chai" : "3.4.1"
      },
      "devDependencies": {},
      "scripts": {
        "test": "node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec"
      },
      "author": "kme",
      "license": "ISC"
    }
    

    When I start the script with npm run test from the console it leads to this error:

    > [email protected] test C:\src\trunk\scripts\testing
    > node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec
    
    
    npm ERR! Windows_NT 6.1.7601
    npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\
    node_modules\\npm\\bin\\npm-cli.js" "run" "test"
    npm ERR! node v4.2.0
    npm ERR! npm  v2.14.7
    npm ERR! code ELIFECYCLE
    npm ERR! [email protected] test: `node ./node_modules/mocha/bin/mocha tests/**/*Test.js
    --reporter spec`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the [email protected] test script 'node ./node_modules/mocha/bin/moch
    a tests/**/*Test.js --reporter spec'.
    npm ERR! This is most likely a problem with the cdh package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR!     node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter sp
    ec
    npm ERR! You can get their info via:
    npm ERR!     npm owner ls cdh
    npm ERR! There is likely additional logging output above.
    
    npm ERR! Please include the following file with any support request:
    npm ERR!     C:\src\trunk\scripts\testing\npm-debug.log
    

    The npm-debug.log file looks like:

    0 info it worked if it ends with ok
    1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
    1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
    1 verbose cli   'run',
    1 verbose cli   'test' ]
    2 info using [email protected]
    3 info using [email protected]
    4 verbose run-script [ 'pretest', 'test', 'posttest' ]
    5 info pretest [email protected]
    6 info test [email protected]
    7 verbose unsafe-perm in lifecycle true
    8 info [email protected] Failed to exec test script
    9 verbose stack Error: [email protected] test: `node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec`
    9 verbose stack Exit status 1
    9 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:214:16)
    9 verbose stack     at emitTwo (events.js:87:13)
    9 verbose stack     at EventEmitter.emit (events.js:172:7)
    9 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14)
    9 verbose stack     at emitTwo (events.js:87:13)
    9 verbose stack     at ChildProcess.emit (events.js:172:7)
    9 verbose stack     at maybeClose (internal/child_process.js:818:16)
    9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
    10 verbose pkgid [email protected]
    11 verbose cwd C:\src\trunk\scripts\testing
    12 error Windows_NT 6.1.7601
    13 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "test"
    14 error node v4.2.0
    15 error npm  v2.14.7
    16 error code ELIFECYCLE
    17 error [email protected] test: `node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec`
    17 error Exit status 1
    18 error Failed at the [email protected] test script 'node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec'.
    18 error This is most likely a problem with the cdh package,
    18 error not with npm itself.
    18 error Tell the author that this fails on your system:
    18 error     node ./node_modules/mocha/bin/mocha tests/**/*Test.js --reporter spec
    18 error You can get their info via:
    18 error     npm owner ls cdh
    18 error There is likely additional logging output above.
    19 verbose exit [ 1, true ]
    
  • Kris
    Kris over 8 years
    I assume that there is a problem with my mocha. It allways returns with exit code 1 but no further error message
  • Sonata
    Sonata over 8 years
    Maybe you can add some console.log to the bin/mocha script and/or the lib/mocha.js to see if and how they are called.
  • Spain Train
    Spain Train about 8 years
    you do not need the ./node_modules/mocha/bin/, npm scripts run with node_modules/.bin in the PATH - docs.npmjs.com/misc/scripts#path
  • Robot70
    Robot70 about 6 years
    If mocha 4.x or greater: "scripts": { "test": "mocha --exit" },