我目前正在使用Karma + Jasmine在基于TypeScript的项目上运行测试,并且当TypeScript编译在因果观察模式下失败时,我想“破坏测试”。
我正在使用标准Karma配置,并使用webpack预处理器(用于编译TS文件)来编译TS。一切工作都很好,除了在发生编译错误时看到所有测试都通过是极具误导性的(即使webpack编译失败,业力也会重新运行以前的测试)。
看起来似乎很琐碎,但是在查看文档并搜索Google一两个小时之后,我拼命地寻找一种解决方案,但我没有找到。
是否存在涉及业力,茉莉花,webpack和TypeScript的解决方案,这些解决方案可以在发生编译错误时中断测试而不会破坏监视模式?
编辑:添加了对手表模式的精度。
我有一个项目,使用webpack将所有代码捆绑到一个文件中.该项目正在使用Typescript,目前工作正常.
我已经去添加单元测试,茉莉花似乎是前进的方式之一(多种方式之一).它实际上是包含在package.json中的jasmine-core - 不确定它有多大区别.
所以运行一个非常简单的测试,如
it('true is true', function(){ expect(true).toEqual(true); });
Run Code Online (Sandbox Code Playgroud)
工作良好.但是当我添加需要使用导入的测试时 - 例如
import MyService = require('./MyServices');
Run Code Online (Sandbox Code Playgroud)
然后,当我运行测试时,它抱怨,因为它不知道"需要"是什么.
Uncaught ReferenceError: require is not defined
现在我猜这是因为我需要以与打包主项目类似的方式打包测试模块.
那么最好的方法是什么?我应该在webpack.config.js文件中有多个入口点 - 每个*.spec.ts文件一个?或者有没有办法说接受未知数量的spec文件
entry:[*.spec.ts]并为每个输出一个js文件 - *.spec.js