what does grunt "test command" do on npm init

mheavers picture mheavers · Jun 15, 2013 · Viewed 30.4k times · Source

I'm trying to learn grunt. When I run npm init, I get a prompt in the process of creating a package.json file that asks for "test command" - I'm not sure how to utilize this, or what it's expecting. It doesn't seem to be well documented. If I leave it blank, I get this in the resulting package.json file:

"scripts": {
    //"test": "echo \"Error: no test specified\" && exit 1"
  },

Can anybody shed some light on how to set up a test script?

Answer

hereandnow78 picture hereandnow78 · Jun 15, 2013

at first, the scripts-property in your package.json has nothing to do with grunt itself. its just a cli-command from npm, wich will be run if you run

$ npm test

read more about that here: https://npmjs.org/doc/scripts.html

e.g. if you test your application with the grunt & nodeunit you could just add that to the scripts-block

"scripts": {
  "test": "grunt nodeunit"
}

and your nodeunit-task is run if you run 'npm test'

this basically makes it easier for continuous integration and so on, if you change your underlying testframework.

of course you could add an alias-task if you need more to be done before and after your tests are run (e.g. concatenation before, cleanup after)