结合摩卡,打字稿(和手表)

Mic*_*ler 3 mocha.js typescript

我创建了一个项目,我想用mocha来测试我的Typescript代码.如果我这样做:

mocha ts/test --compilers ts:typescript-require
Run Code Online (Sandbox Code Playgroud)

在我进行更改后,它将失败并显示如下消息:

error TS2307: Cannot find module 'mocha'.
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为如果我只是运行tsc一切都很好(我有我所有的类型定义,我正在使用一个tsconfig.json文件).我也安装typescript-requiremocha.

但是每次我在那之后运行命令,它都有效吗?!?但如果我mocha进入观察模式:

mocha -w ts/test --compilers ts:typescript-require
Run Code Online (Sandbox Code Playgroud)

然后它第一次通过但在此之后失败.啊! 有关如何获得涉及mocha和Typescript 的强大设置的任何建议,以便我可以测试和观看?

Ido*_*Ido 10

对我来说,我必须添加一个前缀,例如**/

mocha -r ts-node/register "test/**/*.ts" --watch --watch-files **/*

对于多个特定文件夹/文件:

mocha -r ts-node/register "test/**/*.ts" --watch --watch-files src/**/*,test/**/*


小智 9

此命令监视typescript测试更改并触发它们(应安装ts节点):

"scripts": {
"watch": "mocha -r ts-node/register test/*Test.ts  --watch --watch-extensions ts"
}
Run Code Online (Sandbox Code Playgroud)

  • @BartoszKP & @Alex 它不起作用..我正在使用 `mocha 7.2` 和 `mocha -r ts-node/registertests/*.ts --watch --watch-extensions ts` 但它没有重新运行测试用例关于测试文件的更改 (2认同)

bla*_*rey 8

ts-node在遇到类似的用例(https://github.com/TypeStrong/ts-node)之后写了.我需要使用不同的测试运行器运行测试,并且编译到不同的目录不会削减它,因为我也喜欢内联测试夹具.它已经扩展为TypeScript的功能完整节点运行时(包括具有很酷的小.type命令功能的CLI ).在README中有一个用Mocha执行它的例子.

它现在都在内存中,但最终它将通过额外的标志进行扩展,以使其适合生产使用(例如,没有运行时开销,只是编译启动).让我知道它是怎么回事!