Passer au contenu

Filtrage des Tests

Filtrage, délais d’attente, exécution simultanée pour les suites et tests

CLI

Vous pouvez utiliser la CLI pour filtrer les fichiers de test par nom :

Fenêtre de terminal
$ vitest basic

Cela n’exécutera que les fichiers de test qui contiennent basic, 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 nom complet. Cela peut être utile lorsque vous souhaitez filtrer par le nom défini dans un fichier plutôt que par le nom du fichier lui-même.

Spécifier un Délai d’Attente

Vous pouvez en option passer un délai d’attente en millisecondes en tant que troisième argument aux tests. La valeur par défaut est de 5 secondes.

import { test } from 'vitest'
test('nom', async () => { /* ... */ }, 1000)

Les hooks peuvent également recevoir un délai d’attente, avec la même valeur par défaut de 5 secondes.

import { beforeAll } from 'vitest'
beforeAll(async () => { /* ... */ }, 1000)

Ignorer des Suites et Tests

Utilisez .skip pour éviter d’exécuter certaines suites ou tests

import { assert, describe, it } from 'vitest'
describe.skip('suite ignorée', () => {
it('test', () => {
// Suite ignorée, pas d'erreur
assert.equal(Math.sqrt(4), 3)
})
})
describe('suite', () => {
it.skip('test ignoré', () => {
// Test ignoré, pas d'erreur
assert.equal(Math.sqrt(4), 3)
})
})

Sélectionner les Suites et Tests à Exécuter

Utilisez .only pour n’exécuter que certaines suites ou tests

import { assert, describe, it } from 'vitest'
// Seule cette suite (et d'autres marquées avec only) sont exécutées
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3)
})
})
describe('autre suite', () => {
it('test ignoré', () => {
// Test ignoré, car les tests sont exécutés en mode Only
assert.equal(Math.sqrt(4), 3)
})
it.only('test', () => {
// Seul ce test (et d'autres marqués avec only) sont exécutés
assert.equal(Math.sqrt(4), 2)
})
})

Suites et Tests Non Implémentés

Utilisez .todo pour stub des suites et tests qui devraient être implémentés

import { describe, it } from 'vitest'
// Une entrée sera affichée dans le rapport pour cette suite
describe.todo('suite non implémentée')
// Une entrée sera affichée dans le rapport pour ce test
describe('suite', () => {
it.todo('test non implémenté')
})