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 2html
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