Adnotacje testowe
Vitest umożliwia adnotowanie testów za pomocą niestandardowych komunikatów i plików, wykorzystując API context.annotate
. Te adnotacje zostaną dołączone do przypadku testowego i przekazane do reporterów w ramach hooka onTestAnnotate
.
test('hello world', async ({ annotate }) => {
await annotate('to jest mój test');
if (condition) {
await annotate("to powinno było zakończyć się błędem", 'error');
}
const file = createTestSpecificFile();
await annotate('tworzy plik', { body: file });
});
WARNING
Funkcja annotate
zwraca Promise, dlatego należy użyć await
, jeśli w jakikolwiek sposób polegasz na jej wyniku. Jednak Vitest automatycznie zaczeka na każdą adnotację (nawet bez await
) przed zakończeniem testu.
Sposób wyświetlania adnotacji zależy od wybranego reportera.
Wbudowane reportery
default
Reporter default
wyświetla adnotacje tylko wtedy, gdy test zakończył się niepowodzeniem:
⎯⎯⎯⎯⎯⎯⎯ 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
W terminalu TTY, reporter verbose
działa podobnie do reportera default
. Natomiast w środowisku nie-TTY, reporter verbose
będzie również wyświetlał adnotacje po każdym teście.
✓ 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
Reporter HTML wyświetla adnotacje w taki sam sposób, jak interfejs użytkownika. Adnotację można zobaczyć w linii, w której została wywołana. Obecnie, jeśli adnotacja nie została wywołana w pliku testowym, nie jest widoczna w interfejsie użytkownika. Planujemy dodać oddzielny widok podsumowania testów, gdzie będzie ona dostępna.


junit
Reporter junit
wyświetla adnotacje wewnątrz znacznika properties
przypadku testowego. Reporter JUnit zignoruje wszystkie załączniki i wydrukuje tylko typ oraz wiadomość.
<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
Reporter github-actions
domyślnie wyświetli adnotację jako komunikat informacyjny. Możesz skonfigurować type
, przekazując drugi argument jako notice
, warning
lub error
. Jeśli typ nie jest żadnym z wymienionych, Vitest wyświetli wiadomość jako komunikat informacyjny.


tap
Reportery tap
i tap-flat
drukują adnotacje jako komunikaty diagnostyczne w nowej linii, zaczynające się od symbolu #
. Zignorują wszystkie załączniki i wydrukują tylko typ oraz wiadomość:
ok 1 - an example of a test with annotation # time=143.15ms
# notice: the message of the annotation