Фильтрация тестов
Фильтрация, таймауты и параллельное выполнение наборов тестов и отдельных тестов.
CLI
Вы можете использовать CLI для фильтрации файлов тестов по имени:
$ vitest basic
Будут выполнены только те файлы тестов, имена которых содержат basic
. Например:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Указание таймаута
Вы можете указать таймаут в миллисекундах в качестве третьего аргумента функциям test
. Значение по умолчанию — 5 секунд.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Хуки также могут принимать таймаут, значение по умолчанию — 5 секунд.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Пропуск наборов тестов и отдельных тестов
Используйте .skip
для пропуска определенных наборов тестов или отдельных тестов.
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
, чтобы запустить только определенные наборы тестов или отдельные тесты.
import { assert, describe, it } from 'vitest';
// Будет запущен только этот набор тестов
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', () => {
// Будет запущен только этот тест
assert.equal(Math.sqrt(4), 2);
});
});
Незавершенные наборы тестов и отдельные тесты
Используйте .todo
, чтобы пометить наборы тестов и отдельные тесты, которые еще предстоит реализовать.
import { describe, it } from 'vitest';
// В отчете будет отображена запись об этом наборе тестов
describe.todo('unimplemented suite');
// В отчете будет отображена запись об этом тесте
describe('suite', () => {
it.todo('unimplemented test');
});