0

作为 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)

我还需要做些什么才能使测试文件正常运行吗?

4

1 回答 1

0

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

  • 克隆 repo(我假设你已经这样做了,这里只是为了完整起见)
  • 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 上提出问题,以便作者注意。

于 2018-03-04T22:20:16.893 回答