2016-06-28 99 views
2

我们有一个相当大/长成长的角度项目。它目前运行角1.2(我们正在升级到角1.5,并开始准备角2迁移)。业力不运行我的脚本测试沿着JavaScript测试

为了能够启动angular2迁移,我们希望将打字稿集成到项目中。源文件的集成非常简单。我们使用browserify;我们只是添加了tsify和一些配置,一切都在几分钟内完成(js + ts代码/模块捆绑在一起)。

对于我们的前端单元测试(karma,茉莉花)而言恰恰相反(现在工作几个小时)。

这里是我们的业力的配置: https://gist.github.com/ds82/2eaeae875eef92481bc699ead8a7ac5c

如果我运行我们的测试套件这个配置中,打字稿规范文件只是完全忽略。这些打字稿文件中的测试或代码都会执行(在spec.ts文件的顶部有console.log)。 Browserify记录它包含打字稿文件,但是如果我打开karma调试浏览器视图并尝试打开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

现在,如果我注释掉线49和业力配置(这会导致装载规格的线50 TS文件的。没有规范js文件),打字稿测试正常运行。同时,我可以在karma调试浏览器视图中查看spec.ts文件。总结:如果我运行所有测试(javascript + typescript),只执行javascript文件/测试。如果我禁用/注释掉所有javascript测试,我的脚本测试运行良好。

有没有人有一个想法,我怎么能找到这个原因?

+0

在浏览器控制台中是否有其他错误?如果你去浏览器(不是幻影),并点击“调试”,你可能会得到更多的信息 –

+0

不知道它是否会帮助,但[本博客文章](http://lathonez.github。io/2016/ionic-2-unit-testing /)描述了使用karma和jasmine(在Ionic2项目中)测试Angular2应用程序的成功配置。也许它会给你一些想法来调整。 – morphatic

+0

@MattLishman:不,我没有得到任何错误.. – dennis

回答

0

在这里找到一个解决方法:https://github.com/angular/angular-cli/issues/2125#issuecomment-247395088

我周围想出了一个工作。在karma.conf.js文件,添加:

mime: { 
    'text/x-typescript': ['ts','tsx'] 
}, 

这告诉噶服务器提供与文本/ X-打字稿MIME类型.ts文件。这似乎使它的工作。

我有同样的问题,发现Chrome在控制台中有关于我的Typescript文件的无效MIME类型的错误。该文件仍然具有.ts扩展名,所以它被解释为视频文件。解决方法告诉Karma使用正确的MIME类型提供服务。

看来也许使用karma-typescript可以通过.js提供文件来避免这个问题,但我想保留我们用于常规源文件的相同browserify/tsify设置。