TestSpecification
La classe TestSpecification
décrit le module à exécuter en tant que test et ses paramètres associés.
Une spécification ne peut être créée qu'en appelant la méthode createSpecification
sur une instance de projet de tests :
const specification = project.createSpecification(
resolve('./example.test.ts'),
[20, 40] // Lignes de test facultatives
);
createSpecification
attend un ID de module déjà résolu. Elle n'effectue pas la résolution automatique du chemin du fichier ni ne vérifie son existence sur le système de fichiers.
taskId
Identifiant unique du module de test.
project
Référence au TestProject
auquel le module de test est rattaché.
moduleId
L'ID du module au sein du graphe de modules de Vite. Il s'agit généralement d'un chemin de fichier absolu utilisant le séparateur Posix :
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌
testModule
Instance de TestModule
associée à cette spécification. Si le test n'a pas encore été mis en file d'attente pour exécution, cette instance sera undefined
.
pool expérimental
Le pool
dans lequel le module de test sera exécuté.
DANGER
Il est possible d'avoir plusieurs pools au sein d'un même projet de tests en utilisant poolMatchGlob
et typecheck.enabled
. Cela implique qu'il peut exister plusieurs spécifications avec le même moduleId
mais un pool
différent. Dans Vitest 4, le projet ne prendra en charge qu'un seul pool, et cette propriété sera supprimée.
testLines
Un tableau de numéros de ligne dans le code source où les tests sont définis. Ce champ n'est renseigné que si la méthode createSpecification
a été appelée avec un tableau de lignes.
Notez que si au moins une ligne spécifiée ne contient pas de test, la suite entière échouera. Voici un exemple de configuration testLines
correcte :
const specification = project.createSpecification(
resolve('./example.test.ts'),
[3, 8, 9]
);
import { test, describe } from 'vitest'
test('verification works')
describe('a group of tests', () => {
// ...
test('nested test')
test.skip('skipped test')
})
toJSON
function toJSON(): SerializedTestSpecification;
La méthode toJSON
génère un objet JSON utilisable par le Mode Navigateur ou l'Interface Utilisateur de Vitest.