提问者:小点点

更新《因果报应-茉莉花》中使用的茉莉花版本


  • 如何使用karma-jasmine插件更新通过Karma运行Jasmine时使用的Jasmine版本?
  • 只有当karma-jasmine插件集成了较新版本的Jasmine时,Jasmine才会更新吗?或者我可以将karma-jasmine插件指向较新版本的Jasmine吗?
  • Karma-Jasmine安装了什么版本的Jasmine?

我使用Yeoman安装了Karma和karma-jasmine,如下所示:

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

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

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

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

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

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

  • 因果报应:“~0.10.8”/myapp/package.jsoncontents
  • Karma-Jasmine:“~0.1.4”permyapp/package.jsonContents
  • Yeoman:npm list-g grep yo命令结果
  • 中的“1.0.6”
  • Jasmine:未知,但基于一些差异,我几乎想知道karma-jasmine是否包括定制版本的Jasmine,以便与Karma一起工作。

共2个答案

匿名用户

您可以通过运行以下规范了解您正在使用的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()));
  });
});

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

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版本,并更新整个包。您可以使用以下命令获取所有已安装软件包的版本:

  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)。