在 mocha 测试中使用带有 ts-node 的断言

Posted

技术标签:

【中文标题】在 mocha 测试中使用带有 ts-node 的断言【英文标题】:using assert with ts-node in mocha test 【发布时间】:2019-06-19 20:48:51 【问题描述】:

我在test.ts 中创建了一个mocha 测试

import * as assert from "assert";

describe('it', () => 
  it('should ', done => 
    assert.strictEqual(true, false);
    done();
  );
);

我的package.jsons devDependencies

"devDependencies": 
    "@types/mocha": "^5.2.5",
    "@types/node": "^10.12.18",
    "mocha": "^5.2.0",
    "ts-node": "^8.0.1",
    "typescript": "^3.2.4"
  

tsconfig.json:


  "compilerOptions": 
    "target": "es2015",
    "module": "commonjs",
    "sourceMap": true,
    "declaration": true,
    "outDir": "./dist",
    "strict": true,
    "types": ["mocha"]
  

在运行ts-node 时,我收到此错误:

error TS2307: Cannot find module 'assert'.

我的命令行调用是这样的:

./node_modules/mocha/bin/mocha -r ts-node/register test/test.ts

常规tsc 不会引发错误。

【问题讨论】:

【参考方案1】:

已通过 GitHub 上的this issue comment 解决:

types 中的tsconfig.json 需要包含node


  "compilerOptions": 
    "target": "es2015",
    "module": "commonjs",
    "sourceMap": true,
    "declaration": true,
    "outDir": "./dist",
    "strict": true,
    "types": ["mocha", "node"]
  

【讨论】:

以上是关于在 mocha 测试中使用带有 ts-node 的断言的主要内容,如果未能解决你的问题,请参考以下文章

找不到模块 'ts-node/register'

mocha 单元测试中的 Highchart 导入错误

尝试通过 --experimental-loader 选项使用 mocha、ES6 模块和 ts-node

mocha 和 ts-node 找不到本地 .d.ts 文件

mocha 和 ts-node UnhandledPromiseRejectionWarning:TypeError: Cannot convert undefined or null to obje

带有额外选项或参数的 Mocha 测试