Karma - Jasmine:错误:没有框架提供者:jasmine-ajax

时间:2015-04-16 11:22:04

标签: javascript jasmine karma-runner karma-jasmine karma-jasmine-ajax

我试图让Karma加入Jamine' ajax.js

https://github.com/IDCubed/karma-jasmine-ajax

我的业力配置有:

module.exports = function(config) {
  config.set({
    ...
    frameworks: ['jasmine-ajax', 'jasmine'],
  });
};

我的package.json有:

  "devDependencies": {
    "bower": "^1.4.1",
    "del": "^1.1.1",
    "gulp": "^3.8.11",
    "gulp-concat": "^2.5.2",
    "gulp-karma": "0.0.4",
    "jasmine-ajax": "^3.1.0",
    "jasmine-core": "^2.2.0",
    "karma": "0.12.31",
    "karma-chrome-launcher": "0.1.7",
    "karma-cli": "0.0.4",
    "karma-jasmine": "0.3.5",
    "karma-jasmine-ajax": "^0.1.12",
    "karma-junit-reporter": "^0.2.2",
    "yargs": "^3.7.1"
  }

我的规格是这样的:

  describe("mocking ajax", function() {
    describe("suite wide usage", function() {

      beforeEach(function() {
        jasmine.Ajax.install();
      });

      afterEach(function() {
        jasmine.Ajax.uninstall();
      });

      it('does something', function() {

      });
    });
  });

但我有这个错误:

/node_modules/karma/node_modules/di/lib/injector.js:9
      throw error('No provider for "' + name + '"!');
            ^
Error: No provider for "framework:jasmine-ajax"! (Resolving: framework:jasmine-ajax)

我显然错过了一些插件或什么......但是什么?

2 个答案:

答案 0 :(得分:0)

花了4个小时处理同样的问题。这里有几个问题,其核心是:jasmine' jasmine-ajax'以及' karma-jasmine存在特定的版本冲突和要求-ajax'

我使用的是Jasmine 1.3,当前版本的karma-jasmine-ajax取决于{Jasis 1.3.x 不兼容的jasmine-ajax 版本。

这在jasmine-ajax文档中有说明,但不在karma-jasmine-ajax文档中注明:"如果您需要Jasmine 1.3.x的jasmine-ajax,此分支现在是2.0版本请从该标记中获取最后一个版本。"

为了解决这个特定的冲突,我在package.json中指定了 "karma-jasmine-ajax": "0.1.3", ,并删除了对jasmine-ajax(karma-jasmine-ajax将包含在内)的依赖。

最后,对于某些版本的jasmine-ajax,jasmine-ajax的文档也不正确:有些使用request.RespondWith而其他版本使用request.response。我的特定版本组合需要request.response

希望这有帮助。

答案 1 :(得分:0)

我正在使用Karma 3.0.0,如果未将框架配置为如下所示的插件,它将返回此错误。我创建了pull request来更新文档。

k = np.random.randint(1, 100000, 10000)
v = np.random.rand(10000)
d = dict(zip(k, v))

In [119]: %%timeit
     ...: out = np.zeros(100000)
     ...: out[list(d.keys())] = list(d.values())
     ...:
     ...:
1.86 ms ± 13.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

In [120]: %timeit [d.get(i, 0) for i in range(100000)]
17.4 ms ± 231 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [121]: %timeit pd.Series(d).reindex(range(100000),fill_value=0).tolist()
9.77 ms ± 148 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)