我通过karma运行器在phantomjs上运行测试,我的一些代码会调用所有失败的ajax调用404.
我一直在努力放置文件的位置(请参阅:Including libraries fails - what is document root?)但我遇到了一个帖子(Loading external file from Karma/Jasmine test),表明我可以配置karma Web服务器来提供其他文件
特别是ajax调用正在尝试从node_modules
目录加载文件,所以我已经像这样配置了karma.config.js
:
files: [{
pattern: 'node_modules/*',
served: true,
included: false
}]
我的ajax调用通常看起来像这样(我在目录中放置了blah.js
进行测试):
$.ajax({url: 'node_modules/blah.js', ...});
但它仍然没有效果。我错过了什么?
答案 0 :(得分:1)
嗯......这很奇怪,但根据karma docs:
默认情况下,所有资产都在http://localhost:[PORT]/base/
提供
所以这有效:1)在karma.conf.js
:
files: [{
pattern: 'node_modules/**',
served: true,
included: false
}]
和2)电话:
$.ajax({url: '/base/node_modules/blah.js', ...});
...这就留下了如何配置base
的问题,但就目前而言,这是有效的。