使用Angular运行Karma单元测试时,templateUrl路径被破坏

时间:2017-03-23 21:46:09

标签: angularjs karma-jasmine

鉴于以下结构。

root
---app
-----components

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

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

问题:当使用grunt从ROOT运行Karma Unit测试并尝试放置指令时... 找不到404:' components / somemodule / some-template.html'

显然因为引用应该是:'app/components/somemodule/some-template.html'

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

1 个答案:

答案 0 :(得分:0)

我找到的最佳解决方案是将您的模板作为JS加载到运行karma的浏览器中。有很多种方法可以做到。

ng-html2js这样的预处理器可以为你做这件事,通过将所有模板转换为js进行测试。它还包含许多路径配置选项,因此您不必修改代码中的路径。

否则,像ng-templates这样的工具会做同样的事情,但是要在生产代码中使用,同样能够调整路径,这样你就不会被绑定到相对文件夹结构。

相关问题