【发布时间】:2016-06-28 14:34:08
【问题描述】:
我们有一个相当大/长期发展的 Angular 项目。它目前运行 angular 1.2(我们正在升级到 angular 1.5 并开始准备 angular2 迁移)。
为了能够开始 angular2 迁移,我们希望将 typescript 集成到项目中。源文件的集成非常简单。我们使用浏览器;我们刚刚添加了 tsify 和一些配置,一切都在几分钟内完成(js+ts 代码/模块捆绑在一起)。
对于我们的前端单元测试(karma、jasmine),情况恰恰相反(现在已经工作了好几个小时)。
这是我们的业力配置: https://gist.github.com/ds82/2eaeae875eef92481bc699ead8a7ac5c
如果我使用这个配置运行我们的测试套件,打字稿规范文件将被完全忽略。这些打字稿文件中的测试和代码都被执行(在 spec.ts 文件的顶部有 console.log)。 Browserify 记录它包含打字稿文件,但如果我打开业力调试浏览器视图并尝试打开 spec.ts 文件的源,Chromes 只会显示一个空文件。当我这样做时,它会记录:
28 06 2016 16:25:35.242:WARN [web-server]: 404: /absolute/var/folders/0p/b7pdm54d26q8db2qsxtxb3z80000gn/T/app/scripts/blobb.spec.ts
现在,如果我注释掉 karma 配置的第 49 行和第 50 行(这会导致 only 加载规范。ts 文件是 no em> spec.js 文件),打字稿测试按预期运行。同时,我可以在 karma 调试浏览器视图中查看 spec.ts 文件。
总结一下:如果我运行所有测试(javascript + typescript),则只执行 javascript 文件/测试。如果我禁用/注释掉所有 javascript 测试,我的 typescript 测试运行良好。
有没有人知道我该如何找到造成这种情况的原因?
【问题讨论】:
-
您在浏览器控制台中是否遇到任何其他错误?如果您转到浏览器(不是 Phantom)并单击“调试”,您可能会获得更多信息
-
不确定它是否会有所帮助,但this blog post 描述了使用 karma 和 jasmine(在 Ionic2 项目中)测试 Angular2 应用程序的成功配置。也许它会给你一些关于调整什么的想法。
-
@MattLishman:不,我没有收到任何错误..
-
@morphatic:问题是测试套件运行良好,如果我禁用 .js 测试..
标签: javascript angularjs typescript karma-runner browserify