【问题标题】:Karma - Jasmine: Error: No provider for framework:jasmine-ajaxKarma - Jasmine:错误:没有框架提供者:jasmine-ajax
【发布时间】:2015-04-16 11:22:04
【问题描述】:

我正在尝试让 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)

我显然缺少一些插件或其他东西......但是什么?

【问题讨论】:

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


    【解决方案1】:

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

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

    这在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 将包含它自己)。 p>

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-02-21
        • 2017-12-22
        • 1970-01-01
        • 2014-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-23
        • 1970-01-01
        相关资源
        最近更新 更多