Running karma after installation results in 'karma' is not recognized as an internal or external command

I'm trying to run karma as part as an angular-seed project, after installing karma using

npm install -g karma

I get:

'karma' is not recognized as an internal or external command, operable program or batch file.

when i'm trying to run test.bat from angular-client\scripts, the content of this file is:

set BASE_DIR=%~dp0

karma start "%BASE_DIR%..\config\karma.conf.js" %*

I also tried to navigate to "\AppData\Roaming\npm\node_modules\karma\bin" and saw karma file, when I'm trying to run it I get again:

'karma' is not recognized as an internal or external command, operable program or batch file.

Any suggestions? If not please suggest how to use jasmine without karma.

Thanks.


Solution 1:

The command line interface is in a separate package.

To install this use:

npm install -g karma-cli

Solution 2:

karma-cli

It is recommended to install karma with its Command-Line-Interface (karma-cli) which will take care of fetching the appropriate karma. You can also install a different local version specific to each project you're working on and karma-cli will pick the appropriate one.

From the karma installation page:

Typing ./node_modules/karma/bin/karma start sucks so you might find it useful to install karma-cli globally:

npm install -g karma-cli

Now, check that karma was installed by typing:

which karma  //echo something like: /usr/local/bin/karma

and check that karma server is working (ctr+c to quit):

karma start 

You can also check that karma was installed by going to this directory:

cd /usr/local/lib/node_modules/karma

Good luck!

Solution 3:

On windows when you install a npm (non-globally - so without the -g flag), the executable commands are linked in the node_modules\.bin folder.

For example:

powershell> .\node_modules\.bin\karma start

powershell> .\node_modules\.bin\karma run