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 basicSeuls 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.tsVous 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:10WARNING
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');
});