2017-03-23 27 views
0

给定以下结构。使用Angular运行Karma单元测试时templateUrl路径中断

root 
---app 
-----components 

所有模板使用 '组件/ somemodule /一些-template.html' 的指令

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

问题:当使用咕噜从根噶运行单元测试,并试图将一个指令.. 404未找到:“组件/ somemodule /一些-template.html”

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

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

回答

0

我发现的最佳解决方案是将您的模板作为JS加载到业务运行的浏览器中。有许多方法可以完成。

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

否则,像ng-templates这样的工具可以做同样的事情,但可以用于您的生产代码中,同样可以调整路径,以便您不会受限于相对的文件夹结构。

+0

我试过了,但它似乎没有工作。你能提供一些例子吗?看起来,当我放入一个指令时,它并没有通过模板缓存来引用它。它基于物理上添加的js依赖关系进行引用。 –

+0

你尝试了什么,什么不工作?你可能会考虑开始一个新的问题,关于你正在做的事情的具体细节不符合你的想法。 –

相关问题