`node:test` custom reporters get `test:stdout` and `test:stderr` events before `test:dequeue`
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 122k
- Forks
- 37.3k
- Merge medio
- 4 d 2 h
- PR fusionados (30 d)
- 283
Descripción
Version
v22.2.0
Platform
Linux 6a770f0f664c 6.6.26-linuxkit #1 SMP Sat Apr 27 04:13:19 UTC 2024 aarch64 GNU/Linux
Subsystem
test_runner
What steps will reproduce the bug?
Create a folder with these files:
index.test.mjs:
import { it } from "node:test";
it("test", () => {
console.log("message from the test");
});
reporter.mjs:
import util from "node:util";
export default async (source) => {
for await (const event of source) {
if (event.type === "test:stdout") {
console.log(event.type, util.inspect(event.data.message));
}
if (event.type === "test:dequeue") {
console.log(event.type, event.data.name);
}
}
};
and run
node --test --test-reporter=./reporter.mjs
which will print
test:dequeue index.test.mjs
test:stdout 'message from the test\n'
test:dequeue test
How often does it reproduce? Is there a required condition?
It always does the same
What is the expected behavior? Why is that the expected behavior?
I expected test:dequeue test to be printed before test:stdout 'message from the test\n' as the documentation states "Emitted when a test is dequeued, right before it is executed."
What do you see instead?
The test:stdout event is emitted before the test:dequeue, which makes it impossible to understand which test was running when the message was written to stdout.
Additional information
No response
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza ejecutando el comando indicado con index.test.mjs y reporter.mjs para reproducir el orden de los eventos. Lee el manejo de reporter-event de node:test test_runner y añade cobertura para este caso; se considera terminado cuando test:dequeue sea observable antes que test:stdout para la salida de esa prueba, de acuerdo con la semántica documentada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, node.js
- Área
- testing-qa
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 52/100