更新karma-jasmine中使用的Jasmine版本

Mat*_*kin 35 jasmine karma-runner karma-jasmine

问题

背景

我使用Yeoman安装了Karmakarma-jasmine,如下所示:

$ npm install -g generator-angular
$ mkdir myapp && cd $_
$ yo angular
Run Code Online (Sandbox Code Playgroud)

鉴于myapp/bower.json没有将Jasmine列为Bower安装的前端软件包之一,但myapp/karma.conf.jsJasmine列为默认测试框架,我对命令grunt test工作感到惊讶.(本Gruntfile.js,bower.json以及karma.conf.js文件被作为一部分的所有创建yo angular脚手架的过程.)

仔细检查myapp/node_modules包装后,我意识到karma-jasmine并没有指向单独安装Jasmine.在卡玛-茉莉插件实际安装茉莉花:

? myapp/
  ? karma_jasmine/
    ? lib/
        adapter.js
        index.js
        jasmine.js
Run Code Online (Sandbox Code Playgroud)

鉴于卡玛-茉莉说,这是一个" 适配器茉莉测试框架,"我有点惊讶,卡玛-茉莉没有要求我们安装茉莉花分开.

包版本

以下是使用的各种包版本:

jos*_*res 29

您可以通过运行以下规范来了解您正在使用的茉莉花版本:

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()));
  });
});
Run Code Online (Sandbox Code Playgroud)

然后检查控制台或浏览器中的业力输出.它应该是这样的:

LOG: 'jasmine-version:'
LOG: '2.3.4'
Run Code Online (Sandbox Code Playgroud)

茉莉花库已包含在jasmine-runner插件中,您已经发现了.您可以在插件的源代码中找到加载此文件的确切位置:https://github.com/karma-runner/karma-jasmine/blob/master/lib/index.js(第7行)

您可以尝试修改插件,以便可以升级并向业力发送拉取请求(请参阅http://karma-runner.github.io/0.10/dev/contributing.html)

  • 看起来有一个未决的公关为karma-jasmine 2.0更新:https://github.com/karma-runner/karma-jasmine/pull/18; 并且在那里引用,对于使用angular的人也是:https://github.com/angular/angular.js/pull/5662 (2认同)

Ali*_*liR 12

这是一个更好的选择,坚持karma-jasmine中的茉莉花版本并更新整个包.您可以使用以下命令获取所有已安装软件包的版本:

  npm ls
Run Code Online (Sandbox Code Playgroud)

要获取已安装的全局包的版本:

  npm ls -g
Run Code Online (Sandbox Code Playgroud)

要查看CDN上可用的最新版本,请使用:

  npm view karma-jasmine version
Run Code Online (Sandbox Code Playgroud)

在更新之前,您可以使用以下命令查看CDN上的所有版本:

  npm view karma-jasmine versions
Run Code Online (Sandbox Code Playgroud)

要安装特定版本:

  npm install karma-jasmine@~0.2.2 
Run Code Online (Sandbox Code Playgroud)

(0.2.2是最新的).