Skip to content
Vitest 3
Main Navigation 指南 & API配置浏览器模式高级 API
3.2.0
2.1.9
1.6.1
0.34.6

简体中文

English
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

简体中文

English
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

主题

Sidebar Navigation

简介

为什么选择 Vitest

快速入门

特性

配置 Vitest

API

测试 API 参考

模拟函数

Vi

expect

expectTypeOf

assert

assertType

指南

命令行界面

测试过滤

测试项目

报告器

覆盖率

快照

模拟

并行

类型测试

Vitest UI

源内测试

测试上下文

测试注解

测试环境

扩展匹配器

IDE 集成

调试

常见错误

迁移指南

迁移到 Vitest 3.0

从 Jest 迁移

性能

分析测试性能

性能优化

浏览器模式

高级 API

与其他测试运行器的比较

页面导航

测试过滤 ​

过滤、超时以及套件和测试的并发

命令行界面 ​

你可以使用命令行(CLI)按名称过滤测试文件:

bash
$ vitest basic

这将只执行名称中包含 basic 的测试文件,例如:

basic.test.ts
basic-foo.test.ts
basic/foo.test.ts

你还可以使用 -t, --testNamePattern <pattern> 选项按完整的测试名称进行过滤。这在你希望按文件中定义的测试名称而非文件名进行过滤时很有帮助。

从 Vitest 3 开始,你还可以通过文件名和行号指定要运行的测试:

bash
$ vitest basic/foo.test.ts:10

WARNING

请注意,Vitest 要求使用完整的文件路径才能使此功能正常运行。文件路径可以是相对于当前工作目录的路径,也可以是绝对文件路径。

bash
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌

目前,Vitest 也不支持行号范围:

bash
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌

指定超时 ​

你可以选择将超时时间(毫秒)作为测试的第三个参数。默认值为 5 秒。

ts
import { test } from 'vitest';

test('name', async () => {
  /* ... */
}, 1000);

钩子(Hooks)也可以接收超时时间,默认值同样为 5 秒。

ts
import { beforeAll } from 'vitest';

beforeAll(async () => {
  /* ... */
}, 1000);

跳过套件和测试 ​

使用 .skip 跳过某些套件或测试:

ts
import { assert, describe, it } from 'vitest';

describe.skip('skipped suite', () => {
  it('test', () => {
    // 套件已跳过,此断言不会执行
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('suite', () => {
  it.skip('skipped test', () => {
    // 测试已跳过,此断言不会执行
    assert.equal(Math.sqrt(4), 3);
  });
});

选择要运行的套件和测试 ​

使用 .only 仅运行某些套件或测试:

ts
import { assert, describe, it } from 'vitest';

// 仅运行此套件(以及其他标记为 .only 的套件)
describe.only('suite', () => {
  it('test', () => {
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('another suite', () => {
  it('skipped test', () => {
    // 此测试将被跳过,因为当前处于 .only 模式
    assert.equal(Math.sqrt(4), 3);
  });

  it.only('test', () => {
    // 仅运行此测试(以及其他标记为 .only 的测试)
    assert.equal(Math.sqrt(4), 2);
  });
});

未实现的套件和测试 ​

使用 .todo 为待实现的套件和测试创建占位符:

ts
import { describe, it } from 'vitest';

// 报告中将显示此套件的记录,标记为待办
describe.todo('unimplemented suite');

// 报告中将显示此测试的记录,标记为待办
describe('suite', () => {
  it.todo('unimplemented test');
});
Pager
上一页命令行界面
下一页测试项目

基于 MIT 许可证 发布。

版权所有 (c) 2021-Present Vitest Team

https://vitest.dev/guide/filtering

基于 MIT 许可证 发布。

版权所有 (c) 2021-Present Vitest Team