从karma服务器提供脚本文件

时间:2016-01-26 21:01:21

标签: javascript ajax phantomjs karma-runner

我通过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', ...});

但它仍然没有效果。我错过了什么?

1 个答案:

答案 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的问题,但就目前而言,这是有效的。