mheavers
mheavers

Reputation: 30158

what does grunt "test command" do on npm init

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?

Upvotes: 64

Views: 31691

Answers (2)

Vibhu
Vibhu

Reputation: 546

As mentioned in the answer above you can run your test command when you specify it during creation of package json from cmd or by editing the json file manually. Basically as per the npm docs it is used to run the provided package's test script.

npm docs test

In my case , Iam using it to test an angular application using Jasmine(spec.js files) a sample usage can be found in this article :-

Getting Started with Node.js and Jasmine

Upvotes: 0

hereandnow78
hereandnow78

Reputation: 14434

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)

Upvotes: 44

Related Questions