vitest 测试框架环境搭建
# 0. 前言
从本节开始搭建 vitest 测试框架。
# 1. 基础步骤清单
安装
vitest依赖:pnpm i vitest -D配置
vitest.config.ts文件。import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { environment: 'node', /* 没有测试也可通过 */ passWithNoTests: true, /* 过滤文件 */ exclude: ['**/node_modules/**', '**/dist/**'], /* 开启并发线程 */ threads: true } });1
2
3
4
5
6
7
8
9
10
11
12
13新建
sum案例:utils/sum.ts文件const sum = (a: number, b: number) => a + b; export { sum };1
2
3接着新建
src/utils/__test__/index.test.tsimport { expect, test } from "vitest"; import { sum } from "../sum"; test("add", () => { expect(sum(1, 1)).toBe(2); /* 生成 __snapshots__ 文件夹 */ expect(sum(2, 3)).toMatchSnapshot(); /* 推荐: 内联快照 */ expect(sum(4, 5)).toMatchInlineSnapshot(); });1
2
3
4
5
6
7
8
9
10添加指令
{ "test:init": "vitest run" }1
2
3
# 2. 集成可视化步骤
安装依赖:
pnpm i @vitest/ui -D1添加指令:
{ "test:ui": "vitest --ui" }1
2
3查看结果

# 3. 测试覆盖率 coverage 报告
参考:https://cn.vitest.dev/guide/coverage.html
# 覆盖率提供者
c8 和 istanbul 的支持都是可选的。 默认情况下,启用 c8。
你可以通过将 test.coverage.provider 设置为 c8 或 istanbul 来选择覆盖工具:
// vite.config.ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
coverage: {
provider: 'istanbul', // or 'c8'
},
},
})
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
当你启动 Vitest 进程时,它会提示你自动安装相应的支持包。
或者,如果你更喜欢手动安装它们:
# For c8
npm i -D @vitest/coverage-c8
# For istanbul
npm i -D @vitest/coverage-istanbul
1
2
3
4
5
2
3
4
5
# 覆盖率配置
要在启用的情况下进行测试,你可以在 CLI 中传递 --coverage 标志。
{
"scripts": {
"test:coverage": "vitest run --coverage"
}
}
1
2
3
4
5
2
3
4
5
要对其进行配置,需要在配置文件中设置 test.coverage 选项:
// vite.config.ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
coverage: {
reporter: ['text', 'json', 'html'],
},
},
})
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
编辑 (opens new window)
上次更新: 2023/03/18, 13:03:00