TestSpecification
Die Klasse TestSpecification
beschreibt, welches Modul als Test ausgeführt werden soll und welche zugehörigen Parameter dabei verwendet werden.
Eine Spezifikation kann ausschließlich durch den Aufruf der Methode createSpecification
auf einem Testprojekt erstellt werden:
const specification = project.createSpecification(
resolve('./example.test.ts'),
[20, 40] // optionale Zeilen für Tests
);
createSpecification
erwartet eine bereits aufgelöste Modul-ID. Die Methode löst die Datei nicht automatisch auf und prüft auch nicht, ob sie im Dateisystem existiert.
taskId
Der eindeutige Bezeichner des Testmoduls.
project
Dies ist ein Verweis auf das TestProject
, zu dem das Testmodul gehört.
moduleId
Die ID des Moduls im Modulgraphen von Vite. Typischerweise handelt es sich um einen absoluten Dateipfad mit Posix-Trennzeichen:
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌
testModule
Die Instanz des TestModule
, die mit dieser Spezifikation verknüpft ist. Wenn der Test noch nicht in die Warteschlange gestellt wurde, ist der Wert undefined
.
pool experimentell
Der pool
, in dem das Testmodul ausgeführt wird.
DANGER
Es ist möglich, in einem einzigen Testprojekt mehrere Pools zu verwenden, insbesondere in Kombination mit poolMatchGlob
und typecheck.enabled
. Dies bedeutet, dass mehrere Spezifikationen mit derselben moduleId
, aber unterschiedlichem pool
existieren können. In Vitest 4 wird das Projekt nur einen einzigen Pool unterstützen, und diese Eigenschaft wird entfernt.
testLines
Dies ist ein Array von Zeilennummern im Quellcode, die die auszuführenden Tests definieren. Dieses Feld ist nur definiert, wenn der Methode createSpecification
ein Array übergeben wurde.
Beachten Sie, dass die gesamte Testsuite fehlschlägt, wenn auf mindestens einer der angegebenen Zeilen kein Test gefunden wird. Ein Beispiel für eine korrekte Konfiguration von testLines
:
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
generiert ein JSON-kompatibles Objekt, das im Browser-Modus oder in der Vitest UI verwendet werden kann.