如何使用ts-node运行测试文件?

时间:2018-03-04 20:01:14

标签: node.js typescript testing ts-node

对于node和ts-node来说还是比较新的,我正在努力弄清楚如何从这个开源项目运行测试 - https://github.com/pocesar/node-stratum(这是.ts文件)。我安装了“typescript”和“ts-node”......

localhost:node-stratum satishp$ npm install -g typescript
/usr/local/bin/tsc -> /usr/local/lib/node_modules/typescript/bin/tsc
/usr/local/bin/tsserver -> /usr/local/lib/node_modules/typescript/bin/tsserver
+ typescript@2.7.2
added 1 package in 2.974s


localhost:node-stratum satishp$ npm install -g ts-node
/usr/local/bin/ts-node -> /usr/local/lib/node_modules/ts-node/dist/bin.js
+ ts-node@5.0.1
added 17 packages in 1.596s

但是当我去运行位于“test / tests.ts”目录中的测试时,我得到以下错误

localhost:node-stratum satishp$ ts-node test/tests.ts
Error: Cannot find module '../lib'
    at Function.Module._resolveFilename (module.js:555:15)
    at Function.Module._load (module.js:482:25)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/satishp/Documents/workspace/node-stratum/test/tests.ts:3:1)
    at Module._compile (module.js:660:30)
    at Module.m._compile (/usr/local/lib/node_modules/ts-node/src/index.ts:400:23)
    at Module._extensions..js (module.js:671:10)
    at Object.require.extensions.(anonymous function) [as .ts] (/usr/local/lib/node_modules/ts-node/src/index.ts:403:12)
    at Module.load (module.js:573:32)

为了让测试文件正常运行,我还需要做些什么吗?

1 个答案:

答案 0 :(得分:0)

经过一小部分研究,这就是你应该做的事情:

  • 克隆回购(我假设你已经完成了这个,只是为了完整性而在这里)
  • 在克隆文件夹中运行npm install。这样您就可以拥有项目的所有特定包版本。
  • 运行tsc将源文件编译到lib文件夹中。忽略类型错误;代码仍应编译。
  • 运行tsc -p tests.json以编译测试文件,该文件使用tests.json文件作为tsconfig。再次,忽略类型错误。
  • 运行mocha test以实际运行已编译文件的测试。

要获得更快的工作流程,请在单独的命令行实例中运行tsc -wtsc -p tests.json -w,以便自动编译文件。

然后在第三个实例中,您可以运行mocha test -w来运行编译测试。但是,运行测试的其中一个错误会导致mocha失败,因此您必须先修复它,然后才能在监视模式下运行mocha。

项目没有花时间修复许多类型的错误,也没有提供任何关于运行测试的正确文档也没有帮助,所以我建议在GitHub上提出一个问题,以便作者可以注意到