Annotations de test
Vitest permet d'annoter vos tests avec des messages et des fichiers personnalisés via l'API context.annotate
. Ces annotations sont associées au cas de test correspondant et sont transmises aux reporters via le hook onTestAnnotate
.
test('hello world', async ({ annotate }) => {
await annotate('Ceci est mon test');
if (condition) {
await annotate("Ceci aurait dû générer une erreur", 'error');
}
const file = createTestSpecificFile();
await annotate('Crée un fichier', { body: file });
});
WARNING
La fonction annotate
renvoie une Promesse. Il est donc nécessaire de l'attendre si vous avez besoin que l'annotation soit traitée immédiatement. Cependant, Vitest attendra également automatiquement toute annotation non attendue avant la fin du test.
La manière dont ces annotations sont affichées varie en fonction du reporter utilisé.
Reporters intégrés
default
Le reporter default
affiche les annotations uniquement lorsque le test échoue :
⎯⎯⎯⎯⎯⎯⎯ 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
Dans un terminal TTY, le reporter verbose
se comporte comme le reporter default
. Cependant, dans un environnement non-TTY, le reporter verbose
affichera également les annotations après chaque test exécuté.
✓ 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
Le reporter HTML affiche les annotations de manière similaire à l'interface utilisateur. Vous pouvez visualiser l'annotation sur la ligne où elle a été appelée. Actuellement, si l'annotation n'a pas été appelée dans un fichier de test, elle ne sera pas visible dans l'interface utilisateur. Nous prévoyons d'implémenter une vue de résumé de test séparée où elle sera affichée.


junit
Le reporter junit
liste les annotations dans la balise properties
du cas de test. Le reporter JUnit ignorera toutes les pièces jointes et n'affichera que le type et le message.
<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
Le reporter github-actions
affichera par défaut l'annotation sous forme de message de notification. Vous pouvez configurer le type
en passant le deuxième argument comme notice
, warning
ou error
. Si le type ne correspond à aucun de ces choix, Vitest affichera le message comme une notification.


tap
Les reporters tap
et tap-flat
affichent les annotations sous forme de messages de diagnostic sur une nouvelle ligne commençant par un symbole #
. Ils ignoreront toutes les pièces jointes et n'afficheront que le type et le message :
ok 1 - an example of a test with annotation # time=143.15ms
# notice: the message of the annotation