如何使用 ts-node 运行 测试文件?
How do I run a test file using 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)
我还需要做些什么才能将测试文件正确地 运行 吗?
经过一些研究,您应该这样做:
- 克隆存储库(我假设你已经这样做了,只是为了完整起见)
- 运行
npm install
在克隆的文件夹中。这样您将拥有项目的所有特定包版本。
- 运行
tsc
将源文件编译到lib文件夹中。忽略类型错误;代码应该仍然可以编译。
- 运行
tsc -p tests.json
编译测试文件,它使用 tests.json
文件作为 tsconfig.同样,忽略类型错误。
- 运行
mocha test
实际 运行 编译文件的测试。
为了加快工作流程,运行 tsc -w
和 tsc -p tests.json -w
在单独的命令行实例中,以便自动编译文件。
然后在第三个实例中,您可以运行 mocha test -w
到运行 编译测试。但是,运行测试中的错误之一会导致 mocha 失败,因此您必须先修复该错误,然后才能 运行 在手表模式下使用 mocha。
该项目没有花时间修复许多类型错误,也没有提供任何关于 运行 测试的适当文档,这无济于事,所以我建议在GitHub 以便作者注意。
作为 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)
我还需要做些什么才能将测试文件正确地 运行 吗?
经过一些研究,您应该这样做:
- 克隆存储库(我假设你已经这样做了,只是为了完整起见)
- 运行
npm install
在克隆的文件夹中。这样您将拥有项目的所有特定包版本。 - 运行
tsc
将源文件编译到lib文件夹中。忽略类型错误;代码应该仍然可以编译。 - 运行
tsc -p tests.json
编译测试文件,它使用tests.json
文件作为 tsconfig.同样,忽略类型错误。 - 运行
mocha test
实际 运行 编译文件的测试。
为了加快工作流程,运行 tsc -w
和 tsc -p tests.json -w
在单独的命令行实例中,以便自动编译文件。
然后在第三个实例中,您可以运行 mocha test -w
到运行 编译测试。但是,运行测试中的错误之一会导致 mocha 失败,因此您必须先修复该错误,然后才能 运行 在手表模式下使用 mocha。
该项目没有花时间修复许多类型错误,也没有提供任何关于 运行 测试的适当文档,这无济于事,所以我建议在GitHub 以便作者注意。