你如何与Karma Runner(又名Testacular)一起为svg和fixtures服务

时间:2013-04-10 23:57:14

标签: angularjs karma-runner

过去两个小时我一直试图让Karma亚军为svg档案和html灯具服务,但到目前为止还没有运气。

关于这个帖子的第二个答案:Error while integrating html with testacularjs我一直在尝试使用served表示我的fixtures和svg文件应该由服务器分发,但我仍然得到'NOT FOUND的

files = [
  JASMINE,
  JASMINE_ADAPTER,
  REQUIRE,
  REQUIRE_ADAPTER,

  // put all components in requirejs 'paths' config here (included: false)
  { pattern: 'preview/public/components/**/*.js', included: false },
  { pattern: 'preview/public/js/**/*.js', included: false },

  // assets
  { pattern: 'preview/public/img/svg/*.svg', included: false, served: true },

  // helpers & fixtures for jasmine-jquery
  { pattern: 'test/libs/**/*.js', included: true },
  { pattern: 'test/fixtures/**/*.html', included: false, served: true },

  // all src and test modules (included: false)
  { pattern: 'test/specs/**/*.spec.js', included: false },

  // test main require module last
  'test/test-main.js'
];

我将jasmine.getFixtures().fixturesPath设置为/fixtures,我可以看到它正在使用正确的路径,但我仍然最终...

GET http://localhost:9876/img/svg/directional-pad-gradients.svg 404 (Not Found) GET http://localhost:9876/fixtures/directional-pad.html 404 (Not Found)

如果有人有一个装载夹具和/或svg与Karma跑步者的例子我会真的喜欢看一看。谢谢!

2 个答案:

答案 0 :(得分:26)

在这里回答我自己的问题......

我试图在http://localhost:9876/fixtures/directional-pad.html

加载我的灯具

相反,我应该尝试在http://localhost:9876/base/test/fixtures/directional-pad.html

访问它们

Karma将所有内容存储在base/路由下,因此您添加的任何静态文件路由都需要以此开头。

答案 1 :(得分:4)

执行此操作的一种方法是设置代理服务器。

使用代理服务器的测试系统的一个很好的例子是 https://github.com/yearofmoo-articles/AngularJS-Testing-Article

这是Moo的伟大测试教程的例子。 http://www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-testacular.html

您在karma配置文件中设置代理

proxies = {
  '/': 'http://localhost:8100/'
};

然后你需要在8100

上设置服务器

这可以使用http-server

完成
  

npm install http-server --save-dev

然后创建两个文件

./ server.sh

nf --procfile ./config/Procfile.server start

./配置/ Procfile.server

web_server: ./node_modules/http-server/bin/http-server -p 8100 preview/public

然后你需要运行服务器

./server.sh

然后,当您运行测试时,代理将提供您的文件。