【问题标题】:Updating the version of Jasmine used in karma-jasmine更新 karma-jasmine 中使用的 Jasmine 版本
【发布时间】:2014-01-10 21:13:17
【问题描述】:

问题

背景

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

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

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

在仔细检查myapp/node_modules 包后,我意识到karma-jasmine 并不指向单独安装Jasminekarma-jasmine 插件实际上安装了Jasmine

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

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

软件包版本

这里是使用的各种包版本:

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

【问题讨论】:

    标签: jasmine karma-runner karma-jasmine


    【解决方案1】:

    您可以通过运行以下 Spec 了解您正在使用的 jasmine 版本:

    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 库包含在 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

    【讨论】:

    【解决方案2】:

    坚持使用 karma-jasmine 中的 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 是最新版本)。

    【讨论】:

    • 这是错误的:npm view <thing> version 告诉您 published package.json 的内容(即注册表中的内容),而不是您安装的内容你的机器。见stackoverflow.com/questions/10972176/…
    • OP 的重点是确定 Jasmine 的版本,而不是 karma-jasmine 适配器的版本。它们是两种截然不同的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多