web-dev-qa-db-fra.com

Mise à jour de la version de Jasmine utilisée dans karma-jasmine

Des questions

Contexte

J'ai installé Karma et karma-jasmine en utilisant Yeoman comme suit:

$ npm install -g generator-angular
$ mkdir myapp && cd $_
$ yo angular

Étant donné que myapp/bower.json n'a pas répertorié Jasmine comme l'un des packages frontaux Bower installés mais myapp/karma.conf.js répertorié Jasmine comme framework de test par défaut, j'ai été surpris par la commande grunt test travaillé. (Le Gruntfile.js, bower.json, et karma.conf.js les fichiers ont tous été créés dans le cadre du yo angular échafaudage.)

En examinant de plus près le myapp/node_modules packages, j'ai réalisé que karma-jasmine ne pointe pas vers une installation séparée de Jasmine . Le plugin karma-jasmine installe réellement Jasmine :

▼ myapp/
  ▼ karma_jasmine/
    ▼ lib/
        adapter.js
        index.js
        jasmine.js

Étant donné que karma-jasmine indique qu'il s'agit d'un " adaptateur pour le cadre de test Jasmine ", J'ai été un peu surpris que karma-jasmine ne nous oblige pas à installer Jasmine séparément.

Versions de package

Voici les différentes versions de packages utilisées:

  • Karma : "~ 0.10.8" par myapp/package.json Contenu
  • karma-jasmine : "~ 0.1.4" par myapp/package.json Contenu
  • Yeoman : "1.0.6" par npm list -g | grep yo résultats de la commande
  • Jasmine : Inconnu mais basé sur quelques différences, je me demande presque si karma-jasmine inclut une version personnalisée de Jasmine pour travailler avec - Karma .
35
Matthew Rankin

Vous pouvez connaître la version de jasmin que vous utilisez en exécutant la spécification suivante:

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()));
  });
});

puis vérifier la sortie du karma dans votre console ou votre navigateur. Cela devrait être quelque chose comme:

LOG: 'jasmine-version:'
LOG: '2.3.4'

La bibliothèque jasmine est incluse dans le plugin jasmine-runner comme vous l'avez déjà découvert. Vous pouvez trouver l'endroit exact où ce fichier est chargé dans le code source du plugin: https://github.com/karma-runner/karma-jasmine/blob/master/lib/index.js = (ligne 7)

Vous pouvez essayer de modifier le plugin afin qu'une mise à niveau soit possible et envoyer une demande de pull à karma (voir http://karma-runner.github.io/0.10/dev/contributing.html )

29
josketres

C'est une meilleure option de s'en tenir à la version jasmine dans karma-jasmine et de mettre à jour l'ensemble du package. Vous pouvez utiliser la commande suivante pour obtenir la version de tous les packages installés:

  npm ls

Pour obtenir la version des packages globaux installés:

  npm ls -g

Pour afficher la dernière version disponible sur CDN, utilisez:

  npm view karma-jasmine version

Avant la mise à jour, vous pouvez afficher toutes les versions sur le CDN en utilisant:

  npm view karma-jasmine versions

Pour installer une version spécifique:

  npm install karma-jasmine@~0.2.2 

(0.2.2 est la dernière version disponible).

12
AliR