模板 URL 路径在使用 Angular 运行 Karma 单元测试时损坏



给定以下结构。

root
---app
-----components

所有指令模板都使用"components/somemodule/some-template.html">

我的节点服务器通常使用 express.static 从/app 运行应用程序。一切正常。

问题:当使用grunt从ROOT运行Karma单元测试并尝试放置指令时。404 未找到:"components/somemodule/some-template.html">

显然是因为参考文献应该是:'app/components/somemodule/some-template.html'

我无法在我的指令模板中更改它。有没有办法告诉 Karma 找到正确的路径或让 Karma 在应用程序级别运行,以便它可以解析路径?

我发现的最佳解决方案是将您的模板作为 JS 加载到运行 karma 的浏览器中。有许多方法可以做到这一点。

像 ng-html2js 这样的预处理器可以通过将所有模板转换为仅用于测试的 js 来为您做到这一点。它还包括许多路径配置选项,因此您不必修改代码中的路径。

否则,像ng-templates这样的工具会做同样的事情,但用于生产代码,同样能够调整路径,这样你就不会被束缚在相对的文件夹结构上。

最新更新