javascript / expert
Snippet
Benutzerdefiniertes Test-Event-Parsing mit Node.js-Reporter-Streams
Der Node.js Test-Runner exportiert über run() ausführbare Streams, die in offizielle Reporter wie tap geleitet und mit Standard-Stream-Pipelines für benutzerdefinierte CI/CD-Ausgabeformate transformiert werden können.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { run } from 'node:test';import { tap } from 'node:test/reporters';import { Transform } from 'node:stream';const customFilter = new Transform({writableObjectMode: true,transform(chunk, encoding, callback) {const line = chunk.toString();if (line.startsWith('not ok')) {this.push(`[FAILURE ENCOUNTERED]: ${line}`);}callback();}});run({ files: ['./test/suite.js'] }).compose(tap).pipe(customFilter).pipe(process.stdout);
nodejs
Erklärung
1
import { run } from 'node:test';
Importiert den programmatischen Ausführungsmechanismus des Test-Runners.
2
run({ files: ['./test/suite.js'] })
Startet die asynchrone Ausführung von Testdateien als Objekt-Stream.
3
.compose(tap)
Leitet rohe Test-Runner-Ereignisobjekte in den TAP-Reporter-Transformationsstream.
4
.pipe(customFilter)
Leitet formatierte TAP-Textzeilen durch einen benutzerdefinierten Transform-Stream zur selektiven Filterung.