Teszt annotációk
A Vitest lehetővé teszi a tesztek egyedi üzenetekkel és fájlokkal való annotálását a context.annotate
API-n keresztül. Ezek az annotációk a tesztesethez lesznek csatolva, és az onTestAnnotate
hook-ban továbbítódnak a riportereknek.
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
Az annotate
függvény egy Promise-t ad vissza, ezért meg kell várni, ha a tesztfolyamat szempontjából fontos a befejezése. Azonban a Vitest automatikusan megvárja a nem megvárt annotációkat is, mielőtt a teszt befejeződik.
A használt riportertől függően ezek az annotációk eltérően jelennek meg.
Beépített riporterek
default
A default
riporter csak sikertelen tesztek esetén nyomtatja ki az annotációkat:
⎯⎯⎯⎯⎯⎯⎯ 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
TTY terminálon a verbose
riporter hasonlóan működik, mint a default
riporter. Azonban nem TTY környezetben a verbose
riporter minden teszt után megjeleníti az annotációkat is.
✓ 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
A HTML riporter ugyanúgy megjeleníti az annotációkat, mint a felhasználói felület. Az annotációt azon a sorban láthatja, ahol meghívták. Jelenleg, ha az annotációt nem egy tesztfájlban hívták meg, akkor nem jelenik meg az UI-ban. Tervezzük egy külön tesztösszefoglaló nézet támogatását, ahol megtekinthető lesz.


junit
A junit
riporter a teszteset properties
címkéjén belül listázza az annotációkat. A JUnit riporter figyelmen kívül hagyja az összes csatolmányt, és csak a típust és az üzenetet nyomtatja ki.
<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
A github-actions
riporter alapértelmezés szerint értesítő üzenetként jeleníti meg az annotációt. A type
paraméter konfigurálható a második argumentum notice
, warning
vagy error
értékkel való átadásával. Ha a típus nem ezen értékek egyike, a Vitest értesítésként jeleníti meg az üzenetet.


tap
A tap
és tap-flat
riporterek diagnosztikai üzenetként jelenítik meg az annotációkat egy új sorban, amely egy #
szimbólummal kezdődik. Figyelmen kívül hagyják az összes csatolmányt, és csak a típust és az üzenetet nyomtatják ki:
ok 1 - an example of a test with annotation # time=143.15ms
# notice: the message of the annotation