我已经玩过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
答案 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)
}
}
不同。