I've installed Karma and karma-jasmine using Yeoman as follows:
$ npm install -g generator-angular $ mkdir myapp && cd $_ $ yo angular
Given that myapp/bower.json
didn't list Jasmine as one of the Bower installed front-end packages but myapp/karma.conf.js
listed Jasmine as the default testing framework, I was surprised the command grunt test
worked. (The Gruntfile.js
, bower.json
, and karma.conf.js
files were all created as part of the yo angular
scaffolding process.)
Upon closer inspection of the myapp/node_modules
packages, I realized that karma-jasmine doesn't point to a separate installation of Jasmine. The karma-jasmine plugin actually installs Jasmine:
▼ myapp/ ▼ karma_jasmine/ ▼ lib/ adapter.js index.js jasmine.js
Given that karma-jasmine says it is an "adapter for the Jasmine testing framework," I was a little surprised that karma-jasmine didn't require us to install Jasmine separately.
Here are the various package versions used:
myapp/package.json
contentsmyapp/package.json
contentsnpm list -g | grep yo
command resultsTo verify whether the installation was successful, just run “karma –version” and you should see the current version number.
WHAT IS JASMINE/KARMA/ANGULAR? Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
You can know the jasmine version you are using by running the following Spec:
describe('Test to print out jasmine version', function() { it('prints jasmine version', function() { console.log('jasmine-version:'); console.log(jasmine.version || (jasmine.getEnv().versionString && jasmine.getEnv().versionString())); }); });
and then checking the karma output in your console or browser. It should be something like:
LOG: 'jasmine-version:' LOG: '2.3.4'
The jasmine library is included in the jasmine-runner plugin as you've already found out. You can find the exact place where this file is loaded in the source code of the plugin: https://github.com/karma-runner/karma-jasmine/blob/master/lib/index.js (line 7)
You can try to modify the plugin so that an upgrade is possible and send a pull request to karma (see http://karma-runner.github.io/0.10/dev/contributing.html)
It a better option to stick to the jasmine version in karma-jasmine and update the whole package. You can use the following command to get the version of all the installed packages:
npm ls
To get the version of the installed global packages:
npm ls -g
To view the latest version available on CDN, use:
npm view karma-jasmine version
Before updating, you can view all versions at the CDN using:
npm view karma-jasmine versions
To install a specific version:
npm install karma-jasmine@~0.2.2
(0.2.2 is the latest available).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With