Karma - Jasmine:错误:没有提供程序framework:jasmine-ajax。

3
我正在尝试使Karma与Jasmine的ajax.js相连。这是Jasmine官方文档中的ajax.js。我使用了https://github.com/IDCubed/karma-jasmine-ajax,但在我的Karma配置中发生了问题:
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个回答

1

刚刚花了4个小时解决同一个问题。这里有几个问题:核心问题是:'jasmine'、'jasmine-ajax'和'karma-jasmine-ajax'有特定的版本冲突和要求。

我使用Jasmine 1.3,而当前版本的karma-jasmine-ajax依赖于与Jasmine 1.3.x不兼容的jasmine-ajax版本。

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

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

最后,jasmine-ajax的文档在某些版本上也是不正确的:有些使用request.RespondWith,而其他使用request.response。我的具体版本组合需要request.response

希望这有所帮助。

0

我正在使用Karma 3.0.0,如果框架没有像以下那样配置为插件,则会返回此错误。我已经创建了一个拉取请求来更新文档。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接