Lerna managent libs (Ⅱ)

Configuration Test Unit

Posted by lanbery on October 11, 2021

Configuration Test Uint with Mocha & chai

Development environment

  • System : Window 10 + Msys2(cygwin)
  • node : 14.17.3
  • npm : 7.21.0
  • mocha : 9.1.2
  • lerna : 4.0.0

集成 Mocha & chai 测试

安装依赖

yarn add -D -W mocha chai @types/mocha @types/chai @types/node ts-node # add packages to workspace
lerna add mocha chai @types/mocha @types/chai @types/node ts-node --dev # 由lerna 判断是否add packages

使用lerna add命令

可能惠因为代码没有使用到 @types/mocha … 等包会被忽略.这是可以先到子目录通过yarn add -D … 添加

然后在编写完测试用例和脚本后,在执行lerna bootstrap –hoist 整理依赖包

编写测试脚本

mocha 配置

touch packages/common-utils/.mocharc.js

mocha 配置

module.exports = {
    "extenison":['ts'],
    "spec":[
        "src/**/*.spec.ts",
        "tests/*.test.{ts,js}",
        "tests/*.setup.{ts.js}"
    ],
    require:[
        "ts-node/register",
        "chai/register-expect",         // 注册chai->expect 方法到全局
        "chai/register-assert",
        "chai/register-should"
    ]
}

添加 mocha 命令到package.json scripts

...
"scripts":{
    ...,
    "test":"mocha"  // + mocha -c .mocharc.js
}

添加tsc 声明识别

新增项目全局声明文件 types/global/index.d.ts

declare const expect : Chai.ExpectStatic

主要解决vscode 提示

添加 tsconfig 全局配置

{
    ...,
    "compilerOptions":{
        ...,
        "typeRoots": [
            "node_modules/@types",      // + 自动引入对应声明
            "./types",                  // + 全局声明文件
            "./typings"                 // + pkg 声明文件
        ],
        "types": [
            "mocha",
            "chai",
            "node",
            "global"
        ]
    }
}