Karma无法使用Angular 2快速入门配置代理html

时间:2016-12-20 13:11:47

标签: angular karma-runner karma-jasmine

我已经玩过Angular 2 QuickStart和测试。我们确实需要将html和css分开以适应我们的设计师,因此使用templateUrl等至关重要。但是只要我用templateUrl替换模板并指向一个html文件,测试就会开始失败。

Karma报告" WARN [代理]:未能代理base / app / test.html(套接字挂断)",并查看网络跟踪,它没有翻译URL 。所有JS都被翻译成/ base / app,但无论我如何处理文件模式和代理,它都会继续使用/app/test.html而不是/base/app/test.html。在组件中,templateUrl设置为" app / test.html"。我也尝试过所有可能的变化。

使测试通过的唯一方法是为karma.conf.js中的html设置include:true,并指向templateUrl中的/base/app/test.html。 我有一个印象代理与业力会使"东西"在翻译所有请求的网址之间?

我在快速启动回购中使用了发布和最新提交的文件。

编辑:现在已在angular / quickstart项目中修复了此问题。 :)
https://github.com/angular/quickstart/issues/329#issuecomment-271800205

1 个答案:

答案 0 :(得分:1)

我刚刚测试快速启动时遇到了同样的问题。我只需将appAssets中的karma.conf.js从原始base/app/更改为/base/app/

即可解决此问题

根据我对此问题的理解,如果您尝试代理/app/,那就是快速入门karma.conf

中使用的内容
var appAssets  = 'base/app/'

proxies: {
  "/app/": appAssets
},

为什么要用前面有/的路径替换它。当您考虑如何解析网址时,这会导致/app/base/app/,这与struct Channel { sync.Mutex sockets map[SocketID]Socket subchannels map[SocketID]SubchannelID } func (c Channel) Remove(sid SocketID) { c.Lock() defer c.Unlock() if _, ok := c.sockets[sid]; ok { delete(c.sockets, sid) } if _, ok := c.subchannels[sid]; ok { delete(c.subchannels, sid) } } 不同。