2014-06-24 76 views
2

它給了我這個錯誤:配置噶茉莉:getJasmineRequireObj沒有定義

Chrome 37.0.2019 (Mac OS X 10.9.3) ERROR 
    Uncaught ReferenceError: getJasmineRequireObj is not defined at /Users/Lucia/Desktop/test-yo-karma/dev/vendors/jasmine/src/core/Spec.js:1 

但我確信該文件確實存在。並找不到任何地方的錯誤?

回答

0

我原本這karma.conf.js

files: [ 
    {pattern: 'dev/vendors/**/*.js', included: false}, 
    {pattern: 'dev/scripts/**/*.js', included: false}, 
    {pattern: 'test/**/*Spec.js', included: false}, 
    'test/test-main.js' 
] 

事實證明,

  1. 文件的順序包括事項
  2. 你不應該包括不相關的文件(例如全/vendors

所以我應該包括單獨的文件,而不是它們的依賴順序。

[The unhelpful documentation]

0

我看到這個錯誤還有,當我通過它看,它原來,在karma.conf.js VAR TEST_REGEXP太寬泛地定義和實際抓取和執行:my_client /一旦我改變了我的TEST_REGEXP只包括我的規格(你也可以通過特定排除廠商目錄的所有規格文件來做到這一點),錯誤就消失了。

7

我發現我在karma.conf有

frameworks: ['jasmine', 'jasmine-ajax'], 

,而不是

frameworks: ['jasmine-ajax', 'jasmine'], 

+0

有同樣的問題。這太令人討厭了 –

1

就花了好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,其拉動jasmine-ajax版本2.0.0指定"karma-jasmine-ajax": "0.1.3",。此版本的jasmine-ajax不使用getJasmineRequireObj

如果你在jasmine-ajax直接加載,您可以使用此版本:https://raw.github.com/pivotal/jasmine-ajax/v1.3.1/lib/mock-ajax.js

記住(另一種疑難雜症)的不同版本的茉莉在自己的request.responserequest.RespondWith用途而不同 - 這在舊版本和新版本之間來回切換。

希望這會有所幫助。