我的测试文件:
import { expect } from 'chai';
describe('test', () => {
it('compiles', () => {
expect(true).is.true;
});
});
运行此npm脚本有效:
"test": "mocha -r esm -r ts-node/register test/**/Test*.t.ts"
其工作方式示例:https://adrianhall.github.io/web/2018/07/04/run-typescript-mocha-tests-in-vscode/
在该示例中,他们还在测试文件中也使用import {..},但对我来说,仅在需要esm时才起作用(首先是个谜,但本身不是问题)。
当我在VSCode中运行此配置时(来自示例),当我之前执行npm run test时,它可以工作,但是当我更改测试代码并运行时,它在TS类型冒号上崩溃。如果没有'-r esm',摩卡再次在'import {'上崩溃
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"--require", "esm",
"--require", "ts-node/register",
"--timeout", "999999",
"--colors",
"${workspaceFolder}/test/**/Test*.ts",
],
"internalConsoleOptions": "openOnSessionStart"
}
答案 0 :(得分:2)
我让它与ts-mocha一起使用。
package.json脚本
"test": "ts-mocha -r esm -p tsconfig.json test/**/Test*.ts"
launch.json配置
{
"type": "node",
"request": "launch",
"name": "Mocha Tests",
"runtimeArgs": [
"${workspaceFolder}/node_modules/ts-mocha/bin/ts-mocha",
"--timeout", "999999",
"-r", "esm",
"-p", "${workspaceFolder}/tsconfig.json", "${workspaceFolder}/test/**/Test*.ts",
],
"console": "integratedTerminal",
"protocol": "inspector"
}