Skip to content
Vitest 1
Main Navigation GuideAPIConfigAdvanced
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

Guide

Why Vitest

Getting Started

Features

Workspace

CLI

Test Filtering

Reporters

Coverage

Snapshot

Mocking

Testing Types

Vitest UI

Browser Mode

In-source Testing

Test Context

Environment

Extending Matchers

IDE Integration

Debugging

Comparisons

Migration Guide

Common Errors

Improving Performance

API

Test API Reference

Mock Functions

Vi Utility

Expect

ExpectTypeOf

assert

assertType

Config

Config File

Config Reference

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://v1.vitest.dev/guide/filtering

Released under the MIT License.

Copyright (c) 2021-Present Vitest Team