如何为karma-mocha添加参数?

时间:2015-08-27 19:59:59

标签: unit-testing typescript karma-mocha

我为TypeScript项目设置了单元测试。从命令行可以正常工作:

mocha --compilers ts:typescript-require ./source/**/*.spec.ts

现在,我已经将mocha和chai添加到我的karma文件中,如下所示:

...
frameworks: ['mocha', 'chai'],
...

如何使用此部分使用compilers ts:typescript-require文件将参数karma.conf.js包含到mocha中:

...
client: {
  mocha: {
    // I assume it goes here?
  }
},
...

非常感谢一个例子!

1 个答案:

答案 0 :(得分:0)

所以...我有一些好消息和一些坏消息。首先是坏消息。

table.treetable span.indent{ display:inline-block; text-align: right; } 用作Mocha插件,因为在命令行中,Mocha和Typescript都在Node.js的上下文中运行。但是,当您使用Karma时,Mocha实际上会在浏览器的上下文中运行。浏览器没有内置模块加载器(typescript-require的实现),通常有两种策略可以解决这个问题:

  1. 使用dev-time转换器(例如Browserify或Webpack)分析您的require(...)电话,并将其替换为加载代码。
  2. 添加支持require的浏览器内加载程序(例如SystemJS或RequireJS)。
  3. 有不同类型的加载器/ require(...)行为。但是,由于您的代码在命令行(Node.js)中工作,我猜你想要一个能够模拟Node.js的加载器,它是#1家族。

    好的,现在好消息。看起来您想要运行测试而无需单独执行将Typescript转换为JS的步骤,因为您使用的插件即时执行#34;即时#34;。您 可以 在Karma中执行类似的操作,您只需要在Karma图层而不是Mocha图层中运行它。这样做的Karma插件是https://www.npmjs.com/package/karma-typescript-preprocessor

    祝你好运!