Test-Annotationen
Vitest ermöglicht die Annotation Ihrer Tests mit benutzerdefinierten Nachrichten und Dateianhängen über die context.annotate
-API. Diese Annotationen werden dem jeweiligen Testfall zugeordnet und über den onTestAnnotate
-Hook an die Reporter weitergeleitet.
test('hello world', async ({ annotate }) => {
await annotate('this is my test');
if (condition) {
await annotate("this should've errored", 'error');
}
const file = createTestSpecificFile();
await annotate('creates a file', { body: file });
});
WARNING
Die annotate
-Funktion gibt ein Promise zurück und sollte daher await
iert werden, wenn Sie eine sofortige Ausführung benötigen. Vitest wird jedoch auch automatisch jede nicht await
ierte Annotation await
ieren, bevor der Test abgeschlossen wird.
Die Darstellung dieser Annotationen variiert je nach verwendetem Reporter.
Eingebaute Reporter
default
Der default
-Reporter gibt Annotationen ausschließlich bei fehlgeschlagenen Tests aus:
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯
FAIL example.test.js > an example of a test with annotation
Error: thrown error
❯ example.test.js:11:21
9 | await annotate('annotation 1')
10| await annotate('annotation 2', 'warning')
11| throw new Error('thrown error')
| ^
12| })
❯ example.test.js:9:15 notice
↳ annotation 1
❯ example.test.js:10:15 warning
↳ annotation 2
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
verbose
In einem TTY-Terminal verhält sich der verbose
-Reporter ähnlich wie der default
-Reporter. In einer Nicht-TTY-Umgebung gibt der verbose
-Reporter jedoch nach jedem Test Annotationen aus.
✓ example.test.js > an example of a test with annotation
❯ example.test.js:9:15 notice
↳ annotation 1
❯ example.test.js:10:15 warning
↳ annotation 2
html
Der HTML-Reporter zeigt Annotationen analog zur Benutzeroberfläche an. Sie können die Annotation direkt in der Zeile sehen, in der sie aufgerufen wurde. Derzeit sind Annotationen in der Benutzeroberfläche nicht sichtbar, wenn sie nicht innerhalb einer Testdatei aufgerufen wurden. Wir planen, eine separate Testzusammenfassungsansicht zu implementieren, in der diese sichtbar sein werden.


junit
Der junit
-Reporter listet Annotationen innerhalb des properties
-Tags des Testfalls auf. Der JUnit-Reporter ignoriert alle Dateianhänge und gibt lediglich den Typ und die Nachricht aus.
<testcase classname="basic/example.test.js" name="an example of a test with annotation" time="0.14315">
<properties>
<property name="notice" value="the message of the annotation">
</property>
</properties>
</testcase>
github-actions
Der github-actions
-Reporter gibt die Annotation standardmäßig als Hinweisnachricht aus. Sie können den type
konfigurieren, indem Sie das zweite Argument als notice
, warning
oder error
übergeben. Wenn der Typ keiner dieser ist, zeigt Vitest die Nachricht als Hinweis an.


tap
Die tap
- und tap-flat
-Reporter geben Annotationen als Diagnosemeldungen in einer neuen Zeile aus, die mit einem #
-Symbol beginnt. Sie ignorieren alle Dateianhänge und geben lediglich den Typ und die Nachricht aus:
ok 1 - an example of a test with annotation # time=143.15ms
# notice: the message of the annotation