TestSpecification
La classe TestSpecification definisce quale modulo deve essere eseguito come test e i relativi parametri.
È possibile creare una specifica solo tramite il metodo createSpecification di un progetto di test:
const specification = project.createSpecification(
resolve('./example.test.ts'),
[20, 40] // righe di test opzionali
);createSpecification richiede un ID di modulo già risolto. Non risolve automaticamente il percorso del file né verifica la sua esistenza sul file system.
taskId
Identificatore del modulo di test.
project
Riferimento al TestProject a cui appartiene il modulo di test.
moduleId
L'ID del modulo nel grafo dei moduli di Vite. Solitamente, è un percorso di file assoluto che utilizza il separatore POSIX:
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌testModule
Istanza di TestModule associata alla specifica. Se il test non è ancora stato messo in coda, questo sarà undefined.
pool sperimentale
Il pool in cui verrà eseguito il modulo di test.
DANGER
Possono esserci più pool in un singolo progetto di test con poolMatchGlob e typecheck.enabled. Ciò significa che è possibile avere diverse specifiche con lo stesso moduleId ma pool differente. In Vitest 4, il progetto supporterà solo un singolo pool e questa proprietà verrà rimossa.
testLines
Questo è un array di numeri di riga nel codice sorgente dove sono definiti i test. Questo campo è definito solo se il metodo createSpecification ha ricevuto un array.
Si noti che se non c'è un test su almeno una delle righe specificate, l'intera suite fallirà. Un esempio di configurazione testLines corretta:
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;toJSON genera un oggetto compatibile con JSON che può essere utilizzato dalla Modalità Browser o dall'UI di Vitest.