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

问题描述 投票:0回答:3

问题

背景

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

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

鉴于

myapp/bower.json
没有将 Jasmine 列为 Bower 安装的前端软件包之一,但
myapp/karma.conf.js
Jasmine 列为默认测试框架,我对命令
grunt test
的工作感到惊讶。 (
Gruntfile.js
bower.json
karma.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

套餐版本

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

  • 业力:每
    myapp/package.json
    内容
  • “~0.10.8”
  • 业力茉莉花:每
    myapp/package.json
    内容
  • “~0.1.4”
  • Yeoman:每个
    npm list -g | grep yo
    命令结果为“1.0.6”
  • Jasmine:未知,但基于一些差异,我几乎想知道karma-jasmine是否包含Jasmine的定制版本以与Karma一起使用。
jasmine karma-runner karma-jasmine
3个回答
30
投票

您可以通过运行以下 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()));
  });
});

然后在控制台或浏览器中检查 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


15
投票

坚持使用 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 是最新可用的)。


0
投票

这里一个有用的提示是:

npm outdated

这将列出所有过时的依赖项,包括它们的当前版本和最新版本,以便您可以更好地了解应该更新的内容。

之后,

npm install karma@latest jasmine-core@latest

就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.