我的测试文件。
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.ioweb20180704run-typescript-mocha-tests-in-vscode。
在那个例子中,他们在测试文件中也使用了import { . }在测试文件中也使用了,但对我来说,只有当我需要esm的时候才会有效(第一个谜团,但本身不是问题)。
当我在VSCode中运行这个配置时(从例子中),当我 "npm运行测试 "之前,它可以工作,但是当我改变我的测试代码并运行这个时,它在TS类型的冒号处崩溃。没有'-r esm',mocha又在'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"
}
我让它和ts-mocha一起工作。
包.json脚本
"test": "ts-mocha -r esm -p tsconfig.json test/**/Test*.ts"
启动.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"
}