Filtrage des tests
Filtrage, délais d'expiration et exécution concurrente pour les suites et les tests.
CLI
Vous pouvez utiliser la CLI pour filtrer les fichiers de test par nom :
$ vitest basic
Seuls les fichiers de test dont le nom contient basic
seront exécutés, par exemple :
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Vous pouvez également utiliser l'option -t, --testNamePattern <pattern>
pour filtrer les tests par leur nom complet. Ceci est utile lorsque vous souhaitez filtrer par le nom défini dans un fichier plutôt que par le nom du fichier lui-même.
Depuis Vitest 3, vous pouvez également spécifier le test par nom de fichier et numéro de ligne :
$ vitest basic/foo.test.ts:10
WARNING
Notez que Vitest requiert le chemin complet du fichier pour que cette fonctionnalité fonctionne. Il peut être relatif au répertoire de travail actuel ou un chemin de fichier absolu.
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌
Actuellement, Vitest ne prend pas non plus en charge les plages de lignes :
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
Spécifier un délai d'expiration
Vous pouvez optionnellement passer un délai d'expiration en millisecondes comme troisième argument aux tests. La valeur par défaut est 5 secondes.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Les hooks peuvent également recevoir un délai d'expiration, avec la même valeur par défaut de 5 secondes.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Ignorer des suites et des tests
Utilisez .skip
pour éviter d'exécuter certaines suites ou certains tests :
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// Suite ignorée, aucune erreur
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// Test ignoré, aucune erreur
assert.equal(Math.sqrt(4), 3);
});
});
Sélectionner les suites et les tests à exécuter
Utilisez .only
pour n'exécuter que certaines suites ou certains tests :
import { assert, describe, it } from 'vitest';
// Seule cette suite (et les autres marquées avec .only) est exécutée
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// Test ignoré, car les tests s'exécutent en mode .only
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Seul ce test (et les autres marqués avec .only) est exécuté
assert.equal(Math.sqrt(4), 2);
});
});
Suites et tests non implémentés
Utilisez .todo
pour marquer les suites et les tests qui restent à implémenter :
import { describe, it } from 'vitest';
// Une entrée sera affichée dans le rapport pour cette suite
describe.todo('unimplemented suite');
// Une entrée sera affichée dans le rapport pour ce test
describe('suite', () => {
it.todo('unimplemented test');
});