35

问题

背景

我已经使用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并没有指向Jasmine的单独安装。karma-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”
  • Yeomannpm list -g | grep yo :每个命令结果为“1.0.6”
  • Jasmine:未知但基于一些差异,我几乎想知道karma-jasmine是否包含Jasmine的定制版本以与Karma一起使用。
4

2 回答 2

30

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

于 2014-01-14T15:53:43.797 回答
13

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

于 2014-09-14T23:51:04.747 回答