Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Updating the version of Jasmine used in karma-jasmine

Questions

  • How can I update the version of Jasmine used when running Jasmine via Karma using the karma-jasmine plugin?
  • Will Jasmine only get updated whenever the karma-jasmine plugin integrates a newer version of Jasmine, or can I point the karma-jasmine plugin to a newer version of Jasmine?
  • What version of Jasmine is installed by karma-jasmine?

Background

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.

Package Versions

Here are the various package versions used:

  • Karma: "~0.10.8" per myapp/package.json contents
  • karma-jasmine: "~0.1.4" per myapp/package.json contents
  • Yeoman: "1.0.6" per npm list -g | grep yo command results
  • Jasmine: Unknown but based on a few diffs, I'm almost wondering if karma-jasmine includes a customized version of Jasmine to work with Karma.
like image 697
Matthew Rankin Avatar asked Dec 22 '13 13:12

Matthew Rankin


People also ask

How do I check Karma Jasmine version?

To verify whether the installation was successful, just run “karma –version” and you should see the current version number.

What is Karma Jasmine?

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.


2 Answers

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)

like image 102
josketres Avatar answered Sep 19 '22 06:09

josketres


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).

like image 20
AliR Avatar answered Sep 20 '22 06:09

AliR