Anotaciones de prueba
Vitest permite añadir anotaciones a tus pruebas con mensajes y archivos personalizados a través de la API context.annotate
. Estas anotaciones se adjuntarán al caso de prueba y se pasarán a los reporteros mediante el hook onTestAnnotate
.
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
La función annotate
devuelve una Promesa, por lo que debe ser esperada si su ejecución es crítica para el flujo de tu prueba. Sin embargo, Vitest también esperará automáticamente cualquier anotación que no haya sido explícitamente esperada antes de que la prueba finalice.
La visualización de estas anotaciones varía según el reportero configurado.
Reporteros incorporados
default
El reportero default
solo imprime las anotaciones si la prueba ha fallado:
⎯⎯⎯⎯⎯⎯⎯ 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
En un terminal TTY, el reportero verbose
funciona de manera similar al reportero default
. Sin embargo, en un entorno no TTY, el reportero verbose
también imprimirá las anotaciones después de cada prueba, independientemente de su resultado.
✓ 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
El reportero HTML muestra las anotaciones de la misma forma que la interfaz de usuario. Puedes ver la anotación en la línea donde fue invocada. Actualmente, si la anotación no fue llamada dentro de un archivo de prueba, no será visible en la interfaz de usuario. Tenemos previsto implementar una vista de resumen de prueba separada donde estas anotaciones serán visibles.


junit
El reportero junit
lista las anotaciones dentro de la etiqueta properties
del caso de prueba. Este reportero ignorará todos los archivos adjuntos y solo imprimirá el tipo y el mensaje de la anotación.
<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
El reportero github-actions
imprimirá la anotación como un mensaje de notificación por defecto. Puedes configurar el type
pasando el segundo argumento como notice
, warning
o error
. Si el tipo proporcionado no es uno de estos, Vitest mostrará el mensaje como un aviso.


tap
Los reporteros tap
y tap-flat
imprimen las anotaciones como mensajes de diagnóstico en una nueva línea que comienza con un #
. Ignorarán todos los archivos adjuntos y solo imprimirán el tipo y el mensaje:
ok 1 - an example of a test with annotation # time=143.15ms
# notice: the message of the annotation