如何运行在TypeScript中编写的Mochatesting?

安装程序:我有一个用TypeScript编写的节点项目(纯节点,没有浏览器位)。 我可以使用typescript模块中的TypeScript编译器( tsc )编译代码。 到现在为止还挺好。

不过,我想用摩卡书写testing,这就是我遇到麻烦的地方。 我试过 – --compilers ts:typescript ,但我不断收到像这样的错误:

 error TS5023: Unknown compiler option 'compilers'. 

它看起来像mocha的命令行结束被传递给tsc ,这显然是不好的。

对于任何已经尝试过并且有打字稿需求问题的人,你可能想尝试ts-node 。

 $ npm install -g ts-node $ mocha test.ts --require ts-node/register src/**/*.spec.ts 

它似乎也有一些正在进行的关于废弃typecript-require的讨论 ,以支持ts-node。

不要使用这个答案。 typescript-require不会维护,而ts-node是它的替代品。 留下这个答案在这里为后代。

find了。 typescript模块实际上就像一个“主”function; 它会在模块加载后立即运行编译器。 不是很好的devise。

我在Mocha的验收testing中捅了捅,这个testing展示了如何为foo文件使用自定义的编译器。 他们通过require.extensions机制连接起来。 当我意识到有人必须做到这一点之前,我写了一个模块,只是在命令行调用tsc一半。 所以这很简单:

 $ npm install typescript-require --save-dev $ mocha --compilers ts:typescript-require