Skip to content
Vitest 2
Main Navigation GuideAPIConfigBrowser ModeAdvanced
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

Appearance

Sidebar Navigation

Why Vitest

Getting Started

Features

Workspace

CLI

Test Filtering

Reporters

Coverage

Snapshot

Mocking

Testing Types

Vitest UI

In-source Testing

Test Context

Environment

Extending Matchers

IDE Integration

Debugging

Comparisons

Migration Guide

Common Errors

Profiling Test Performance

Improving Performance

On this page

Test Filtering ​

Filtering, timeouts, concurrent for suite and tests

CLI ​

You can use CLI to filter test files by name:

bash
$ vitest basic

Will only execute test files that contain basic, e.g.

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

You can also use the -t, --testNamePattern <pattern> option to filter tests by full name. This can be helpful when you want to filter by the name defined within a file rather than the filename itself.

Specifying a Timeout ​

You can optionally pass a timeout in milliseconds as third argument to tests. The default is 5 seconds.

ts
import { test } from 'vitest';

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

Hooks also can receive a timeout, with the same 5 seconds default.

ts
import { beforeAll } from 'vitest';

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

Skipping Suites and Tests ​

Use .skip to avoid running certain suites or tests

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

describe.skip('skipped suite', () => {
  it('test', () => {
    // Suite skipped, no error
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('suite', () => {
  it.skip('skipped test', () => {
    // Test skipped, no error
    assert.equal(Math.sqrt(4), 3);
  });
});

Selecting Suites and Tests to Run ​

Use .only to only run certain suites or tests

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

// Only this suite (and others marked with only) are run
describe.only('suite', () => {
  it('test', () => {
    assert.equal(Math.sqrt(4), 3);
  });
});

describe('another suite', () => {
  it('skipped test', () => {
    // Test skipped, as tests are running in Only mode
    assert.equal(Math.sqrt(4), 3);
  });

  it.only('test', () => {
    // Only this test (and others marked with only) are run
    assert.equal(Math.sqrt(4), 2);
  });
});

Unimplemented Suites and Tests ​

Use .todo to stub suites and tests that should be implemented

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

// An entry will be shown in the report for this suite
describe.todo('unimplemented suite');

// An entry will be shown in the report for this test
describe('suite', () => {
  it.todo('unimplemented test');
});
Pager
Previous pageCLI
Next pageReporters

Released under the MIT License.

Copyright (c) 2021-Present Vitest Team

https://v2.vitest.dev/guide/filtering

Released under the MIT License.

Copyright (c) 2021-Present Vitest Team