1

我試圖讓噶Jamine的ajax.js噶 - 茉莉花:錯誤:沒有提供程序框架:茉莉花AJAX

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

我的人緣配置有:

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

我的包.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) 

我顯然缺少一些插件什麼的......但什麼?

回答

0

剛剛花了4小時處理同樣的問題。這裏有幾件事情出了問題,它的核心是:'茉莉花','茉莉花阿賈克斯'和'卡瑪茉莉花阿賈克斯'有特定的版本衝突和要求。

我用茉莉花1.3,和karma-jasmine-ajax當前版本取決於版本的jasmine-ajax是incompatabile茉莉1.3.x的

這是注意到jasmine-ajax文檔中,而不是karma-jasmine-ajax文檔:。「該分支現在是2.0的版本,如果你需要茉莉花AJAX茉莉的1.3.x請抓住從該標籤的最後一個版本」

爲了解決這個具體的衝突,我在的package.json指定"karma-jasmine-ajax": "0.1.3",並取消了對我的依賴茉莉花AJAX(其中卡瑪 - 茉莉花AJAX將包括自身)。

最後,jasmine-ajax的文檔對於某些版本的jasmine-ajax也是不正確的:某些使用request.RespondWith和其他使用request.response。我的具體版本組合需要request.response

希望這會有所幫助。