我已经为一个TypeScript项目设置了单元测试。从命令行可以很好地执行以下操作:
mocha --compilers ts:typescript-require ./source/**/*.spec.ts现在,我已经将mocha和chai添加到我的karma文件中,如下所示:
...
frameworks: ['mocha', 'chai'],
...如何使用karma.conf.js文件将参数compilers ts:typescript-require包含到mocha中:
...
client: {
mocha: {
// I assume it goes here?
}
},
...如果能举个例子,我们将非常感谢!
发布于 2016-05-14 08:57:29
所以..。我有一些好消息和一些坏消息。首先是坏消息。
typescript-require作为一个Mocha插件工作,因为在命令行中,Mocha和Typescript都在Node.js的上下文中运行。然而,当您使用Karma时,Mocha实际上是在浏览器的上下文中运行的。浏览器没有内置的模块加载器(require(...)的实现),通常有两种策略来弥补这一点:
require(...)调用,并将其替换为加载的代码。有不同风格的装载器/请求(...)行为。但是,由于您的代码在命令行( Node.js )中工作,我猜您需要一个能够模拟Node.js的加载器。
好了,现在有个好消息。看起来你想运行你的测试,而不需要做一个单独的步骤来将你的Typescript转换成JS,因为你使用的插件是“即时”的。你可以在Karma中做类似的事情,你只需要在Karma层而不是Mocha层运行它。一个可以做到这一点的Karma插件是https://www.npmjs.com/package/karma-typescript-preprocessor。
祝好运!
https://stackoverflow.com/questions/32258407
复制相似问题