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

时间:2013-12-22 13:58:23

标签: jasmine karma-runner karma-jasmine

问题

背景

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

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

鉴于myapp/bower.json未列出Yeoman作为Jasmine安装的前端软件包之一,myapp/karma.conf.js列出Bower作为默认测试框架我对命令grunt test的工作感到惊讶。 (Gruntfile.jsbower.jsonkarma.conf.js文件都是作为yo angular脚手架流程的一部分创建的。)

仔细检查myapp/node_modules个包后,我意识到Jasmine并未指向karma-jasmine的单独安装。 Jasmine插件实际上会安装karma-jasmine

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

鉴于Jasmine表示它是karma-jasmine测试框架的“适配器,”我有点惊讶Jasmine并不需要我们单独安装karma-jasmine

包版本

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

  • Jasmine:每个myapp/package.json内容的“~0.10.8”
  • Karma:每个myapp/package.json内容的“~0.1.4”
  • karma-jasmine:每个npm list -g | grep yo命令结果“1.0.6”
  • Yeoman:未知,但基于一些差异,我几乎想知道Jasmine是否包含karma-jasmine的自定义版本,以便与Jasmine一起使用。

2 个答案:

答案 0 :(得分: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()));
  });
});

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

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

茉莉花库已包含在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

答案 1 :(得分:12)

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

  npm ls

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

  npm ls -g

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

  npm view karma-jasmine version

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

  npm view karma-jasmine versions

安装特定版本:

  npm install karma-jasmine@~0.2.2 

(0.2.2是最新的)。