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

Updating the version of Jasmine used in karma-jasmine

问题

  • 如何使用Karma Jasmine插件更新通过Karma运行Jasmine时使用的Jasmine版本?
  • Jasmine只会在Karma Jasmine插件集成较新版本的Jasmine时更新,还是我可以将Karma Jasmine插件指向较新版本的Jasmine?
  • Karma Jasmine安装了什么版本的茉莉?
  • 小精灵背景

    我用约曼安装了卡玛和卡玛茉莉,如下所示:

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

    鉴于myapp/bower.json没有将茉莉花列为bower安装的前端包之一,但myapp/karma.conf.js将茉莉花列为默认测试框架,我对grunt test的命令起作用感到惊讶。(Gruntfile.jsbower.jsonkarma.conf.js文件都是作为yo angular脚手架过程的一部分创建的。)

    在仔细检查了myapp/node_modules包之后,我意识到Karma Jasmine并没有指向单独安装的Jasmine。Karma Jasmine插件实际上安装了Jasmine:

    1
    2
    3
    4
    5
    6
    ▼ myapp/
      ▼ karma_jasmine/
        ▼ lib/
            adapter.js
            index.js
            jasmine.js

    考虑到Karma Jasmine说它是"Jasmine测试框架的适配器",我有点惊讶于Karma Jasmine不要求我们单独安装Jasmine。

    程序包版本

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

    • 因果报应:每个myapp/package.json内容:"~0.10.8"
    • Karma Jasmine:每个myapp/package.json目录:"~0.1.4"
    • 约曼:"1.0.6"根据npm list -g | grep yo命令结果
    • 茉莉花:不知道,但基于一些差异,我几乎在想,茉莉花是否包括一个定制版本的茉莉花与业力一起工作。
    • 小精灵


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

      1
      2
      3
      4
      5
      6
      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()));
        });
      });

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

      1
      2
      LOG: 'jasmine-version:'
      LOG: '2.3.4'

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

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


      更好的选择是在Karma Jasmine中坚持Jasmine版本并更新整个软件包。可以使用以下命令获取所有已安装软件包的版本:

      1
        npm ls

      要获取已安装的全局包的版本,请执行以下操作:

      1
        npm ls -g

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

      1
        npm view karma-jasmine version

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

      1
        npm view karma-jasmine versions

      要安装特定版本:

      1
        npm install karma-jasmine@~0.2.2

      (0.2.2为最新版本)。