过去两个小时我一直试图让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跑步者的例子我会真的喜欢看一看。谢谢!
答案 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
然后创建两个文件
nf --procfile ./config/Procfile.server start
web_server: ./node_modules/http-server/bin/http-server -p 8100 preview/public
然后你需要运行服务器
./server.sh
然后,当您运行测试时,代理将提供您的文件。