它给了我这个错误:
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 :(得分:8)
我发现我有
frameworks: ['jasmine', 'jasmine-ajax'],
而不是
frameworks: ['jasmine-ajax', 'jasmine'],
在我的karma.conf中
答案 1 :(得分:1)
花了4个小时处理同样的问题。这里有几个问题出错(因此所有不同的,可能同样准确的答案),它的核心是:版本冲突需要特定的依赖关系'jasmine','jasmine-ajax'和'karma-jasmine-ajax ”。
我使用的是Jasmine 1.3,当前版本的karma-jasmine-ajax
取决于{Jasis 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
版本2.0.0 。此版本的jasmine-ajax
不使用getJasmineRequireObj
。
如果您直接在jasmine-ajax
加载,则可以使用此版本:https://raw.github.com/pivotal/jasmine-ajax/v1.3.1/lib/mock-ajax.js
请记住(还有另一个问题)不同版本的茉莉花在request.response
和request.RespondWith
的使用方面有所不同 - 这会在旧版本和新版本之间来回切换。
希望这有帮助。
答案 2 :(得分: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'
]
事实证明,
/vendors
)所以我应该按照依赖顺序包含单独的文件。
答案 3 :(得分:0)
我也看到了这个错误,当我查看它时,结果发现karma.conf.js中的var TEST_REGEXP定义过于广泛,实际上正在抓取并执行:my_client / app / bower_components / jasmine / src /芯/ Spec.js:1
一旦我更改了我的TEST_REGEXP以仅包含我的规格(您也可以通过专门排除供应商目录的所有规范文件来执行此操作),错误消失了。