@descryy/runtime-test-runner 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/test-runner-collector.d.ts +139 -2
- package/dist/test-runner-collector.d.ts.map +1 -1
- package/dist/test-runner-collector.js +322 -42
- package/dist/test-runner-collector.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { TestRunnerConfiguration, TestRunnerCollectorOptions, TestRunnerCollector, RunnerDiscovery, RunnerKind, SkipReason, TraceCoverage, EnvelopeVerdict } from "./test-runner-collector.ts";
|
|
2
|
-
export { createTestRunnerCollector, discoverRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, createEnvelopeGate, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE } from "./test-runner-collector.ts";
|
|
1
|
+
export type { TestRunnerConfiguration, TestRunnerCollectorOptions, TestRunnerCollector, RunnerDiscovery, RunnerKind, RunnerMatch, SkipReason, TraceCoverage, EnvelopeVerdict, NodeTestEvent } from "./test-runner-collector.ts";
|
|
2
|
+
export { createTestRunnerCollector, discoverRunner, matchRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, supportedRunnerExamples, createEnvelopeGate, createUnittestResultParser, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE, } from "./test-runner-collector.ts";
|
|
3
3
|
export type { ObservedTestCaseResolution } from "./graph-mapping.ts";
|
|
4
4
|
export { resolveObservedTestCase } from "./graph-mapping.ts";
|
|
5
5
|
export type { SwiftTestDump, DiscoveredSwiftClass, SwiftDiscoveryResult, SwiftXCTestCollectorOptions, SwiftXCTestCollector } from "./swift-xctest.ts";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChO,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACtJ,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createTestRunnerCollector, discoverRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, createEnvelopeGate, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE } from "./test-runner-collector.js";
|
|
1
|
+
export { createTestRunnerCollector, discoverRunner, matchRunner, withReporterFlags, reporterFlagsFor, reporterEnvFor, supportedRunnerExamples, createEnvelopeGate, createUnittestResultParser, ENVELOPE_VERSION, ENVELOPE_HANDSHAKE_TYPE, } from "./test-runner-collector.js";
|
|
2
2
|
export { resolveObservedTestCase } from "./graph-mapping.js";
|
|
3
3
|
export { discoverClasses, generateLinuxMain, discoverSwiftTests, writeLinuxMain, removeGeneratedLinuxMain, createSwiftXCTestCollector, GENERATED_MARKER, } from "./swift-xctest.js";
|
|
4
4
|
export { isGoTestEvent, createGoEventTranslator, createGoTestCollector } from "./go-test.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* state, not derivation.
|
|
34
34
|
*
|
|
35
35
|
* **Discovery is declared, never inferred** (RT-032's own precedent):
|
|
36
|
-
* `discoverRunner` refuses a command that names none of the
|
|
36
|
+
* `discoverRunner` refuses a command that names none of the eleven runners
|
|
37
37
|
* it observes, rather than sniffing `package.json`/lockfiles to guess which
|
|
38
38
|
* runner a project uses. Also refuses a command that already carries its
|
|
39
39
|
* own `--test-reporter` — safely co-existing with an unknown pre-existing
|
|
@@ -42,6 +42,28 @@
|
|
|
42
42
|
* to get right blindly; a caller who wants both gets an honest refusal
|
|
43
43
|
* naming why, not a best-effort guess.
|
|
44
44
|
*
|
|
45
|
+
* **unittest is the one profile with no reporter API to speak the envelope
|
|
46
|
+
* at all** (B4's own root-cause note: "a disclosed gap, not a missing
|
|
47
|
+
* capability" was the wrong ruling once a real user's declared command
|
|
48
|
+
* turned out to be exactly this one). `python -m unittest` has no plugin
|
|
49
|
+
* flag, no custom-runner flag, nothing argv can point at an installed
|
|
50
|
+
* module the way every other profile's reporter is loaded — so it is the
|
|
51
|
+
* one runner whose events are parsed from its own human-readable `-v`
|
|
52
|
+
* stdout/stderr text (`createUnittestResultParser`, below) rather than
|
|
53
|
+
* translated from NDJSON through the shared envelope gate. `start()`
|
|
54
|
+
* branches on `discovery.kind === "unittest"` for exactly this reason, a
|
|
55
|
+
* disclosed, narrow exception to "no per-runner branch below this line" —
|
|
56
|
+
* everything the parser produces still feeds the same `NodeTestEvent`
|
|
57
|
+
* shape and the same `createEventTranslator`, so a `TEST_CASE` result from
|
|
58
|
+
* unittest is indistinguishable downstream from one any other runner
|
|
59
|
+
* produced. What it cannot produce: a real `sourceLocation` (unittest's
|
|
60
|
+
* per-test line carries a qualified name, never a file/line — that only
|
|
61
|
+
* appears in the traceback section printed after every test has already
|
|
62
|
+
* finished, and matching one back to the right earlier result with
|
|
63
|
+
* confidence is exactly the inference precision-over-recall forbids), so
|
|
64
|
+
* every unittest result carries a null `sourceLocation` rather than one
|
|
65
|
+
* derived from prose.
|
|
66
|
+
*
|
|
45
67
|
* **Trace capture (RT-074): declared, via `TestContext.diagnostic()`, not
|
|
46
68
|
* inferred from anything.** A test that makes a backend call and wants its
|
|
47
69
|
* TEST_PASSED/TEST_FAILED evidence to correlate with that call's backend
|
|
@@ -96,7 +118,7 @@ export interface TestRunnerCollectorOptions {
|
|
|
96
118
|
* discovery rather than re-derived, so nothing downstream re-parses a
|
|
97
119
|
* command string it has already been told the answer for.
|
|
98
120
|
*/
|
|
99
|
-
export type RunnerKind = "node:test" | "jest" | "vitest" | "junit" | "xunit" | "playwright" | "pytest" | "rspec" | "phpunit" | "minitest";
|
|
121
|
+
export type RunnerKind = "node:test" | "jest" | "vitest" | "junit" | "xunit" | "playwright" | "pytest" | "rspec" | "phpunit" | "minitest" | "unittest";
|
|
100
122
|
/**
|
|
101
123
|
* The version of the NDJSON envelope every reporter speaks (RT-130).
|
|
102
124
|
*
|
|
@@ -211,6 +233,62 @@ export type RunnerDiscovery = {
|
|
|
211
233
|
* three and is why this is per-runner rather than one shared rule.
|
|
212
234
|
*/
|
|
213
235
|
export declare function withReporterFlags(args: readonly string[]): readonly string[];
|
|
236
|
+
/**
|
|
237
|
+
* One declared-command example per `PROFILES` entry, in table order.
|
|
238
|
+
*
|
|
239
|
+
* This is the fix for B4: the "names no runner this collector observes"
|
|
240
|
+
* refusal used to be a hardcoded string naming three runners, written when
|
|
241
|
+
* only node:test/Jest/Vitest existed and never regenerated as the other
|
|
242
|
+
* seven landed — so a published build that fully supported pytest told a
|
|
243
|
+
* Python caller only "node, jest, vitest" are supported. Deriving the list
|
|
244
|
+
* from `PROFILES` here means it cannot go stale again without the profile
|
|
245
|
+
* itself changing.
|
|
246
|
+
*/
|
|
247
|
+
export declare function supportedRunnerExamples(): readonly string[];
|
|
248
|
+
/** What `matchRunner` answers for a command it can name a profile for — everything a caller needs to render "this collector would use X", without exposing `RunnerProfile` itself. */
|
|
249
|
+
export interface RunnerMatch {
|
|
250
|
+
readonly kind: RunnerKind;
|
|
251
|
+
readonly declaredAs: string;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Pure, side-effect-free: answers "would `discoverRunner` recognise this
|
|
255
|
+
* command's *shape*, and as which runner" without tokenizing into anything
|
|
256
|
+
* spawnable, without touching the filesystem, and without starting a
|
|
257
|
+
* collector.
|
|
258
|
+
*
|
|
259
|
+
* **Exists for one reason** (the second UAT finding on B4): `descry-core`'s
|
|
260
|
+
* `observe_tests` handshake used to mint a confirmation token for any
|
|
261
|
+
* declared command and only discover — on redemption, after already
|
|
262
|
+
* promising the caller a run — that `discoverRunner` would refuse it. A
|
|
263
|
+
* handshake that calls this function before minting a token refuses before
|
|
264
|
+
* it promises, instead of after.
|
|
265
|
+
*
|
|
266
|
+
* **The same matching `discoverRunner` itself uses, not a second copy of
|
|
267
|
+
* it.** Both call `findMatchingProfile`; a profile added, removed, or
|
|
268
|
+
* changed here is reflected in both without either being touched again —
|
|
269
|
+
* the discipline the hardcoded three-runner refusal list never had.
|
|
270
|
+
*
|
|
271
|
+
* A command `tokenizeCommand` cannot parse, and a command wrapped in `npx`,
|
|
272
|
+
* both return `null` here exactly as `discoverRunner` refuses them — `null`
|
|
273
|
+
* is authoritative in both of those cases: if this returns `null`,
|
|
274
|
+
* `discoverRunner` returns `{ ok: false }` for the same command, always.
|
|
275
|
+
* It is **not** authoritative the other direction — a non-null result names
|
|
276
|
+
* which profile a command's shape matches, not that `discoverRunner` will
|
|
277
|
+
* ultimately accept it. A matched profile can still refuse on the full
|
|
278
|
+
* argument list (`vitest` with no `run`, a command that already configures
|
|
279
|
+
* its own `--reporter`), which needs the complete tokenized args this
|
|
280
|
+
* predicate deliberately does not evaluate — that is a second, more
|
|
281
|
+
* specific refusal reached only by actually calling `discoverRunner`. Read
|
|
282
|
+
* a non-null result as "not obviously unsupported", not as "guaranteed to
|
|
283
|
+
* run".
|
|
284
|
+
*
|
|
285
|
+
* Use `supportedRunnerExamples()` to render the same "supported, and each
|
|
286
|
+
* declared explicitly: ..." list `discoverRunner`'s own generic refusal
|
|
287
|
+
* uses, so a handshake's up-front refusal and this collector's own
|
|
288
|
+
* run-time refusal are guaranteed to name the same runners rather than
|
|
289
|
+
* being two strings that happen to agree today.
|
|
290
|
+
*/
|
|
291
|
+
export declare function matchRunner(rawCommand: string): RunnerMatch | null;
|
|
214
292
|
/**
|
|
215
293
|
* Exported on its own so a caller can validate a configured command before
|
|
216
294
|
* ever attempting to spawn it — the same "refuse atomically before anything
|
|
@@ -288,6 +366,65 @@ export interface NodeTestEvent {
|
|
|
288
366
|
};
|
|
289
367
|
}
|
|
290
368
|
export declare function isNodeTestEvent(value: unknown): value is NodeTestEvent;
|
|
369
|
+
/**
|
|
370
|
+
* Parses CPython's own `unittest.runner.TextTestResult` verbose (`-v`)
|
|
371
|
+
* output into the same `NodeTestEvent` shape every other profile's reporter
|
|
372
|
+
* emits as real NDJSON -- so `createEventTranslator` never has to know this
|
|
373
|
+
* event did not arrive as JSON. See the file-level doc comment ("unittest is
|
|
374
|
+
* the one profile...") for why a reporter is not possible here at all.
|
|
375
|
+
*
|
|
376
|
+
* **Measured directly against a real `python -m unittest -v` run**, not
|
|
377
|
+
* assumed from documentation:
|
|
378
|
+
*
|
|
379
|
+
* ```
|
|
380
|
+
* test_pass (test_sample.TestSample.test_pass) ... ok
|
|
381
|
+
* test_fail (test_sample.TestSample.test_fail) ... FAIL
|
|
382
|
+
* test_error (test_sample.TestSample.test_error) ... ERROR
|
|
383
|
+
* test_skip (test_sample.TestSample.test_skip) ... skipped 'not ready'
|
|
384
|
+
* test_xfail (test_sample.TestSample.test_xfail) ... expected failure
|
|
385
|
+
* test_xpass (test_sample.TestSample.test_xpass) ... unexpected success
|
|
386
|
+
* ```
|
|
387
|
+
*
|
|
388
|
+
* and, for a test with a docstring, split across two lines instead of one
|
|
389
|
+
* (`getDescription` returns `"%s\n%s" % (str(test), doc_first_line)` when a
|
|
390
|
+
* docstring is present, `str(test)` alone otherwise):
|
|
391
|
+
*
|
|
392
|
+
* ```
|
|
393
|
+
* test_with_doc (test_doc.TestDoc.test_with_doc)
|
|
394
|
+
* This is a docstring. ... ok
|
|
395
|
+
* ```
|
|
396
|
+
*
|
|
397
|
+
* A header-only line is trusted for at most one line of lookahead: whatever
|
|
398
|
+
* arrives next either completes it (a docstring's first line, ending in
|
|
399
|
+
* ` ... <outcome>`) or does not, and either way the header is then
|
|
400
|
+
* discarded -- never left pending indefinitely waiting for a continuation
|
|
401
|
+
* that a stray print from the test body or an unrecognised outcome word
|
|
402
|
+
* might otherwise be mistaken for. A line the parser cannot place at all
|
|
403
|
+
* (the `======`/`----` banners, a traceback body, `Ran N tests...`, `OK`,
|
|
404
|
+
* `FAILED (...)`, or the test process's own stdout) is silently ignored --
|
|
405
|
+
* the same "unparseable output is ordinary and expected" rule every
|
|
406
|
+
* NDJSON-based profile already applies to its own noise.
|
|
407
|
+
*
|
|
408
|
+
* **What this deliberately does not attempt.** unittest's per-test line
|
|
409
|
+
* carries a qualified name only, never a file or line number -- those
|
|
410
|
+
* appear solely in the traceback section printed after every test in the
|
|
411
|
+
* run has already finished, under a `======`-delimited header repeating the
|
|
412
|
+
* test's own description. Re-associating that traceback with the correct
|
|
413
|
+
* earlier result, reliably, across a run with many tests (some sharing a
|
|
414
|
+
* class or method name across modules), is exactly the kind of inference
|
|
415
|
+
* precision-over-recall exists to forbid -- so no attempt is made, every
|
|
416
|
+
* `sourceLocation` this parser produces is null, and every FAILED/ERROR
|
|
417
|
+
* carries no `error` detail either, rather than one guessed from prose.
|
|
418
|
+
* `expected failure`/`unexpected success` fold into `TEST_SKIPPED`/
|
|
419
|
+
* `TEST_PASSED` respectively -- the same choice the pytest reporter already
|
|
420
|
+
* made for `xfail`/`xpass`, not a new one invented here. An outcome word
|
|
421
|
+
* this parser has never measured (a future CPython addition) still gets a
|
|
422
|
+
* `TEST_STARTED` -- the test did start -- but no paired result, on the same
|
|
423
|
+
* "report nothing rather than guess" rule.
|
|
424
|
+
*/
|
|
425
|
+
export declare function createUnittestResultParser(): {
|
|
426
|
+
feed(line: string): readonly NodeTestEvent[];
|
|
427
|
+
};
|
|
291
428
|
/**
|
|
292
429
|
* `test:pass`/`test:fail` arrive from node's own reporter stream BEFORE any
|
|
293
430
|
* `t.diagnostic()` call inside that same test shows up as its own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runner-collector.d.ts","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"test-runner-collector.d.ts","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
* state, not derivation.
|
|
34
34
|
*
|
|
35
35
|
* **Discovery is declared, never inferred** (RT-032's own precedent):
|
|
36
|
-
* `discoverRunner` refuses a command that names none of the
|
|
36
|
+
* `discoverRunner` refuses a command that names none of the eleven runners
|
|
37
37
|
* it observes, rather than sniffing `package.json`/lockfiles to guess which
|
|
38
38
|
* runner a project uses. Also refuses a command that already carries its
|
|
39
39
|
* own `--test-reporter` — safely co-existing with an unknown pre-existing
|
|
@@ -42,6 +42,28 @@
|
|
|
42
42
|
* to get right blindly; a caller who wants both gets an honest refusal
|
|
43
43
|
* naming why, not a best-effort guess.
|
|
44
44
|
*
|
|
45
|
+
* **unittest is the one profile with no reporter API to speak the envelope
|
|
46
|
+
* at all** (B4's own root-cause note: "a disclosed gap, not a missing
|
|
47
|
+
* capability" was the wrong ruling once a real user's declared command
|
|
48
|
+
* turned out to be exactly this one). `python -m unittest` has no plugin
|
|
49
|
+
* flag, no custom-runner flag, nothing argv can point at an installed
|
|
50
|
+
* module the way every other profile's reporter is loaded — so it is the
|
|
51
|
+
* one runner whose events are parsed from its own human-readable `-v`
|
|
52
|
+
* stdout/stderr text (`createUnittestResultParser`, below) rather than
|
|
53
|
+
* translated from NDJSON through the shared envelope gate. `start()`
|
|
54
|
+
* branches on `discovery.kind === "unittest"` for exactly this reason, a
|
|
55
|
+
* disclosed, narrow exception to "no per-runner branch below this line" —
|
|
56
|
+
* everything the parser produces still feeds the same `NodeTestEvent`
|
|
57
|
+
* shape and the same `createEventTranslator`, so a `TEST_CASE` result from
|
|
58
|
+
* unittest is indistinguishable downstream from one any other runner
|
|
59
|
+
* produced. What it cannot produce: a real `sourceLocation` (unittest's
|
|
60
|
+
* per-test line carries a qualified name, never a file/line — that only
|
|
61
|
+
* appears in the traceback section printed after every test has already
|
|
62
|
+
* finished, and matching one back to the right earlier result with
|
|
63
|
+
* confidence is exactly the inference precision-over-recall forbids), so
|
|
64
|
+
* every unittest result carries a null `sourceLocation` rather than one
|
|
65
|
+
* derived from prose.
|
|
66
|
+
*
|
|
45
67
|
* **Trace capture (RT-074): declared, via `TestContext.diagnostic()`, not
|
|
46
68
|
* inferred from anything.** A test that makes a backend call and wants its
|
|
47
69
|
* TEST_PASSED/TEST_FAILED evidence to correlate with that call's backend
|
|
@@ -312,6 +334,7 @@ export function withReporterFlags(args) {
|
|
|
312
334
|
const PROFILES = [
|
|
313
335
|
{
|
|
314
336
|
kind: "node:test",
|
|
337
|
+
declaredAs: "node ... --test ...",
|
|
315
338
|
// Matched on the executable alone, with `--test` checked in `refuse`
|
|
316
339
|
// rather than here. Matching on both would make `node server.mjs` fall
|
|
317
340
|
// through to the generic "names no runner" message, which is true and
|
|
@@ -330,6 +353,7 @@ const PROFILES = [
|
|
|
330
353
|
},
|
|
331
354
|
{
|
|
332
355
|
kind: "jest",
|
|
356
|
+
declaredAs: "jest ...",
|
|
333
357
|
matches: (baseName) => baseName === "jest" || baseName === "jest.js",
|
|
334
358
|
refuse: (args) => hasFlag(args, "--reporters")
|
|
335
359
|
? "command already configures --reporters -- this collector needs to own the reporter to observe structured events, and Jest's --reporters REPLACES the default set rather than adding to it, so co-existing safely with an unknown one is not attempted. Remove the existing --reporters flag."
|
|
@@ -341,6 +365,7 @@ const PROFILES = [
|
|
|
341
365
|
},
|
|
342
366
|
{
|
|
343
367
|
kind: "vitest",
|
|
368
|
+
declaredAs: "vitest run ...",
|
|
344
369
|
matches: (baseName) => baseName === "vitest" || baseName === "vitest.js",
|
|
345
370
|
refuse: (args) => {
|
|
346
371
|
// **Vitest defaults to WATCH mode**, and a watching runner never
|
|
@@ -363,6 +388,7 @@ const PROFILES = [
|
|
|
363
388
|
},
|
|
364
389
|
{
|
|
365
390
|
kind: "junit",
|
|
391
|
+
declaredAs: "java -jar junit-platform-console-standalone-<version>.jar execute ...",
|
|
366
392
|
// `java` alone, with the specifics in `refuse` — the node:test
|
|
367
393
|
// precedent. `java -jar app.jar` is an ordinary command and the useful
|
|
368
394
|
// answer for it is "that is not the console launcher", not the generic
|
|
@@ -395,6 +421,7 @@ const PROFILES = [
|
|
|
395
421
|
},
|
|
396
422
|
{
|
|
397
423
|
kind: "playwright",
|
|
424
|
+
declaredAs: "playwright test ...",
|
|
398
425
|
matches: (baseName) => baseName === "playwright" || baseName === "playwright.js",
|
|
399
426
|
refuse: (args) => {
|
|
400
427
|
// `playwright` alone is the CLI (codegen, install, show-report); only
|
|
@@ -415,6 +442,7 @@ const PROFILES = [
|
|
|
415
442
|
},
|
|
416
443
|
{
|
|
417
444
|
kind: "xunit",
|
|
445
|
+
declaredAs: "dotnet test ...",
|
|
418
446
|
matches: (baseName) => baseName === "dotnet" || baseName === "dotnet.exe",
|
|
419
447
|
refuse: (args) => {
|
|
420
448
|
if (args[0] !== "test") {
|
|
@@ -440,6 +468,7 @@ const PROFILES = [
|
|
|
440
468
|
},
|
|
441
469
|
{
|
|
442
470
|
kind: "pytest",
|
|
471
|
+
declaredAs: "pytest ... (or python -m pytest ...)",
|
|
443
472
|
// `pytest ...` directly, or `python -m pytest ...` (and the `python3`/
|
|
444
473
|
// `.exe` spellings) — the node:test precedent of matching the
|
|
445
474
|
// interpreter and checking the invocation shape in `refuse`, since
|
|
@@ -462,6 +491,7 @@ const PROFILES = [
|
|
|
462
491
|
},
|
|
463
492
|
{
|
|
464
493
|
kind: "rspec",
|
|
494
|
+
declaredAs: "rspec ...",
|
|
465
495
|
// `rspec ...` directly, or `ruby <path/to/rspec> ...` — RSpec's own
|
|
466
496
|
// installed binary is itself a Ruby script, and some environments (this
|
|
467
497
|
// one included — see rspec-reporter.test.ts) invoke it through an
|
|
@@ -480,6 +510,7 @@ const PROFILES = [
|
|
|
480
510
|
},
|
|
481
511
|
{
|
|
482
512
|
kind: "phpunit",
|
|
513
|
+
declaredAs: "phpunit ...",
|
|
483
514
|
// `phpunit ...` directly (the composer-installed binary, itself a PHP
|
|
484
515
|
// script with a shebang), or `php <path/to/phpunit-or-.phar> ...` — the
|
|
485
516
|
// same dual shape as rspec's, for the same reason: some environments
|
|
@@ -511,6 +542,7 @@ const PROFILES = [
|
|
|
511
542
|
},
|
|
512
543
|
{
|
|
513
544
|
kind: "minitest",
|
|
545
|
+
declaredAs: "ruby -r minitest/autorun ...",
|
|
514
546
|
// The interpreter alone is not enough — every `ruby <file>` command
|
|
515
547
|
// shares it, tests and non-tests alike. `declaresRequire` is what
|
|
516
548
|
// actually distinguishes a Minitest invocation, so it is checked here in
|
|
@@ -537,7 +569,108 @@ const PROFILES = [
|
|
|
537
569
|
return [...args.slice(0, insertAt), "-r", MINITEST_REPORTER_PATH, ...args.slice(insertAt)];
|
|
538
570
|
},
|
|
539
571
|
},
|
|
572
|
+
{
|
|
573
|
+
kind: "unittest",
|
|
574
|
+
declaredAs: "python -m unittest ... (or python -m unittest discover ...)",
|
|
575
|
+
// `python -m unittest`, told apart from `python other_script.py` the
|
|
576
|
+
// same way pytest's own profile is: matching the interpreter and
|
|
577
|
+
// checking the invocation shape (`-m unittest`) in `matches`, not the
|
|
578
|
+
// executable alone.
|
|
579
|
+
matches: (baseName, args) => (baseName === "python" || baseName === "python3" || baseName === "python.exe") && args[0] === "-m" && args[1] === "unittest",
|
|
580
|
+
refuse: (args) => hasFlag(args, "-q") || hasFlag(args, "--quiet")
|
|
581
|
+
? "command already configures -q/--quiet -- this collector needs unittest's own -v per-test lines to tell one test's result from another, and quiet mode suppresses exactly those lines. Remove the existing -q/--quiet flag."
|
|
582
|
+
: null,
|
|
583
|
+
// **Inserted right after the token that starts the mode it belongs to,
|
|
584
|
+
// never before it.** Measured directly: `python -m unittest -v discover
|
|
585
|
+
// -s tests -t .` fails outright ("unrecognized arguments: -s tests -t
|
|
586
|
+
// ."), because a flag placed before `discover` makes the top-level
|
|
587
|
+
// parser treat `discover` itself as a bare positional test name rather
|
|
588
|
+
// than the subcommand, and everything meant for `discover` becomes
|
|
589
|
+
// unrecognised. `python -m unittest discover -v -s tests -t .` works.
|
|
590
|
+
// So `-v` goes right after `discover` in that mode, and right after
|
|
591
|
+
// `unittest` (bare-module mode) otherwise -- the same "insert after the
|
|
592
|
+
// identifying token" rule node:test's own profile already set for
|
|
593
|
+
// `--test`. A caller who already declared `-v`/`--verbose` gets nothing
|
|
594
|
+
// added a second time.
|
|
595
|
+
withReporterFlags: (args) => {
|
|
596
|
+
if (hasFlag(args, "-v") || hasFlag(args, "--verbose"))
|
|
597
|
+
return args;
|
|
598
|
+
const insertAt = args[2] === "discover" ? 3 : 2;
|
|
599
|
+
return [...args.slice(0, insertAt), "-v", ...args.slice(insertAt)];
|
|
600
|
+
},
|
|
601
|
+
},
|
|
540
602
|
];
|
|
603
|
+
/**
|
|
604
|
+
* One declared-command example per `PROFILES` entry, in table order.
|
|
605
|
+
*
|
|
606
|
+
* This is the fix for B4: the "names no runner this collector observes"
|
|
607
|
+
* refusal used to be a hardcoded string naming three runners, written when
|
|
608
|
+
* only node:test/Jest/Vitest existed and never regenerated as the other
|
|
609
|
+
* seven landed — so a published build that fully supported pytest told a
|
|
610
|
+
* Python caller only "node, jest, vitest" are supported. Deriving the list
|
|
611
|
+
* from `PROFILES` here means it cannot go stale again without the profile
|
|
612
|
+
* itself changing.
|
|
613
|
+
*/
|
|
614
|
+
export function supportedRunnerExamples() {
|
|
615
|
+
return PROFILES.map((profile) => profile.declaredAs);
|
|
616
|
+
}
|
|
617
|
+
/** `true` for the one command shape neither `discoverRunner` nor `matchRunner` will ever match to a profile — see `discoverRunner`'s own npx comment for why unwrapping it is not attempted. */
|
|
618
|
+
function isNpxWrapped(baseName) {
|
|
619
|
+
return baseName === "npx" || baseName === "npx.cmd";
|
|
620
|
+
}
|
|
621
|
+
/** The one place `discoverRunner` and `matchRunner` both ask "which profile matches this command" — a shared call so the two can never drift apart the way the hardcoded refusal list once did (B4). */
|
|
622
|
+
function findMatchingProfile(baseName, args) {
|
|
623
|
+
return PROFILES.find((candidate) => candidate.matches(baseName, args));
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Pure, side-effect-free: answers "would `discoverRunner` recognise this
|
|
627
|
+
* command's *shape*, and as which runner" without tokenizing into anything
|
|
628
|
+
* spawnable, without touching the filesystem, and without starting a
|
|
629
|
+
* collector.
|
|
630
|
+
*
|
|
631
|
+
* **Exists for one reason** (the second UAT finding on B4): `descry-core`'s
|
|
632
|
+
* `observe_tests` handshake used to mint a confirmation token for any
|
|
633
|
+
* declared command and only discover — on redemption, after already
|
|
634
|
+
* promising the caller a run — that `discoverRunner` would refuse it. A
|
|
635
|
+
* handshake that calls this function before minting a token refuses before
|
|
636
|
+
* it promises, instead of after.
|
|
637
|
+
*
|
|
638
|
+
* **The same matching `discoverRunner` itself uses, not a second copy of
|
|
639
|
+
* it.** Both call `findMatchingProfile`; a profile added, removed, or
|
|
640
|
+
* changed here is reflected in both without either being touched again —
|
|
641
|
+
* the discipline the hardcoded three-runner refusal list never had.
|
|
642
|
+
*
|
|
643
|
+
* A command `tokenizeCommand` cannot parse, and a command wrapped in `npx`,
|
|
644
|
+
* both return `null` here exactly as `discoverRunner` refuses them — `null`
|
|
645
|
+
* is authoritative in both of those cases: if this returns `null`,
|
|
646
|
+
* `discoverRunner` returns `{ ok: false }` for the same command, always.
|
|
647
|
+
* It is **not** authoritative the other direction — a non-null result names
|
|
648
|
+
* which profile a command's shape matches, not that `discoverRunner` will
|
|
649
|
+
* ultimately accept it. A matched profile can still refuse on the full
|
|
650
|
+
* argument list (`vitest` with no `run`, a command that already configures
|
|
651
|
+
* its own `--reporter`), which needs the complete tokenized args this
|
|
652
|
+
* predicate deliberately does not evaluate — that is a second, more
|
|
653
|
+
* specific refusal reached only by actually calling `discoverRunner`. Read
|
|
654
|
+
* a non-null result as "not obviously unsupported", not as "guaranteed to
|
|
655
|
+
* run".
|
|
656
|
+
*
|
|
657
|
+
* Use `supportedRunnerExamples()` to render the same "supported, and each
|
|
658
|
+
* declared explicitly: ..." list `discoverRunner`'s own generic refusal
|
|
659
|
+
* uses, so a handshake's up-front refusal and this collector's own
|
|
660
|
+
* run-time refusal are guaranteed to name the same runners rather than
|
|
661
|
+
* being two strings that happen to agree today.
|
|
662
|
+
*/
|
|
663
|
+
export function matchRunner(rawCommand) {
|
|
664
|
+
const tokenized = tokenizeCommand(rawCommand);
|
|
665
|
+
if (!tokenized.ok)
|
|
666
|
+
return null;
|
|
667
|
+
const { command, args } = tokenized;
|
|
668
|
+
const baseName = command.split(/[\\/]/).pop() ?? command;
|
|
669
|
+
if (isNpxWrapped(baseName))
|
|
670
|
+
return null;
|
|
671
|
+
const profile = findMatchingProfile(baseName, args);
|
|
672
|
+
return profile === undefined ? null : { kind: profile.kind, declaredAs: profile.declaredAs };
|
|
673
|
+
}
|
|
541
674
|
/**
|
|
542
675
|
* Exported on its own so a caller can validate a configured command before
|
|
543
676
|
* ever attempting to spawn it — the same "refuse atomically before anything
|
|
@@ -563,7 +696,7 @@ export function discoverRunner(rawCommand) {
|
|
|
563
696
|
// the caller wrote. The runner's own binary is one path away
|
|
564
697
|
// (`node_modules/.bin/jest`), so the refusal names the fix rather than
|
|
565
698
|
// guessing at one.
|
|
566
|
-
if (baseName
|
|
699
|
+
if (isNpxWrapped(baseName)) {
|
|
567
700
|
return {
|
|
568
701
|
ok: false,
|
|
569
702
|
reason: `"${rawCommand}" runs the runner through npx, whose own arguments cannot be told apart from the runner's ` +
|
|
@@ -571,12 +704,14 @@ export function discoverRunner(rawCommand) {
|
|
|
571
704
|
"`node_modules/.bin/jest ...` or `node_modules/.bin/vitest run ...`.",
|
|
572
705
|
};
|
|
573
706
|
}
|
|
574
|
-
const profile =
|
|
707
|
+
const profile = findMatchingProfile(baseName, args);
|
|
575
708
|
if (profile === undefined) {
|
|
576
709
|
return {
|
|
577
710
|
ok: false,
|
|
578
711
|
reason: `"${rawCommand}" names no runner this collector observes. Supported, and each declared explicitly: ` +
|
|
579
|
-
|
|
712
|
+
`${supportedRunnerExamples()
|
|
713
|
+
.map((example) => `\`${example}\``)
|
|
714
|
+
.join(", ")}. ` +
|
|
580
715
|
"A command is never matched by sniffing package.json or a lockfile.",
|
|
581
716
|
};
|
|
582
717
|
}
|
|
@@ -660,6 +795,138 @@ function parseCorrelationDiagnostic(message) {
|
|
|
660
795
|
return null;
|
|
661
796
|
return { kind: kind, value: value.trim() };
|
|
662
797
|
}
|
|
798
|
+
/**
|
|
799
|
+
* A single-line unittest `-v` result: `test_name (module.Class.test_name) ...
|
|
800
|
+
* <outcome>`. Anchored at both ends deliberately -- a traceback header line
|
|
801
|
+
* later in the same stream (`ERROR: test_name (module.Class.test_name)`)
|
|
802
|
+
* has a third token before the parenthesised name and must NOT match this.
|
|
803
|
+
*/
|
|
804
|
+
const UNITTEST_RESULT_LINE = /^(\S+) \(([\w.]+)\) \.\.\. (.+)$/;
|
|
805
|
+
/**
|
|
806
|
+
* The header-only line CPython's own `TextTestResult.getDescription` emits
|
|
807
|
+
* for a test with a docstring -- the qualified name alone, with the outcome
|
|
808
|
+
* (and the docstring's own first line) arriving on the *next* line instead
|
|
809
|
+
* (measured directly; see `createUnittestResultParser`'s own doc comment).
|
|
810
|
+
*/
|
|
811
|
+
const UNITTEST_HEADER_ONLY_LINE = /^(\S+) \(([\w.]+)\)$/;
|
|
812
|
+
/** The tail of a docstring-continuation line: arbitrary prose, then the same ` ... <outcome>` suffix `UNITTEST_RESULT_LINE` reads directly. */
|
|
813
|
+
const UNITTEST_CONTINUATION_LINE = /\.\.\. (.+)$/;
|
|
814
|
+
/** unittest's own outcome word for a declared, known-broken test (`@unittest.expectedFailure`) that failed as expected -- the same fact pytest's own `xfail` marker states, mapped to the same `skipReason` the pytest reporter already uses for it (RT-107): declared as absent rather than switched off, not a plain skip. */
|
|
815
|
+
const UNITTEST_EXPECTED_FAILURE = "expected failure";
|
|
816
|
+
function unittestSkipReason(outcome) {
|
|
817
|
+
if (outcome === UNITTEST_EXPECTED_FAILURE)
|
|
818
|
+
return "not-implemented";
|
|
819
|
+
// `skipped 'reason text'` -- always a declared skip in unittest (there is
|
|
820
|
+
// no unittest equivalent of pytest's runtime `pytest.skip()` distinct from
|
|
821
|
+
// `@unittest.skip`; both spellings produce this exact outcome word), so
|
|
822
|
+
// `disabled` is read, not guessed.
|
|
823
|
+
if (outcome.startsWith("skipped"))
|
|
824
|
+
return "disabled";
|
|
825
|
+
return null;
|
|
826
|
+
}
|
|
827
|
+
/**
|
|
828
|
+
* Parses CPython's own `unittest.runner.TextTestResult` verbose (`-v`)
|
|
829
|
+
* output into the same `NodeTestEvent` shape every other profile's reporter
|
|
830
|
+
* emits as real NDJSON -- so `createEventTranslator` never has to know this
|
|
831
|
+
* event did not arrive as JSON. See the file-level doc comment ("unittest is
|
|
832
|
+
* the one profile...") for why a reporter is not possible here at all.
|
|
833
|
+
*
|
|
834
|
+
* **Measured directly against a real `python -m unittest -v` run**, not
|
|
835
|
+
* assumed from documentation:
|
|
836
|
+
*
|
|
837
|
+
* ```
|
|
838
|
+
* test_pass (test_sample.TestSample.test_pass) ... ok
|
|
839
|
+
* test_fail (test_sample.TestSample.test_fail) ... FAIL
|
|
840
|
+
* test_error (test_sample.TestSample.test_error) ... ERROR
|
|
841
|
+
* test_skip (test_sample.TestSample.test_skip) ... skipped 'not ready'
|
|
842
|
+
* test_xfail (test_sample.TestSample.test_xfail) ... expected failure
|
|
843
|
+
* test_xpass (test_sample.TestSample.test_xpass) ... unexpected success
|
|
844
|
+
* ```
|
|
845
|
+
*
|
|
846
|
+
* and, for a test with a docstring, split across two lines instead of one
|
|
847
|
+
* (`getDescription` returns `"%s\n%s" % (str(test), doc_first_line)` when a
|
|
848
|
+
* docstring is present, `str(test)` alone otherwise):
|
|
849
|
+
*
|
|
850
|
+
* ```
|
|
851
|
+
* test_with_doc (test_doc.TestDoc.test_with_doc)
|
|
852
|
+
* This is a docstring. ... ok
|
|
853
|
+
* ```
|
|
854
|
+
*
|
|
855
|
+
* A header-only line is trusted for at most one line of lookahead: whatever
|
|
856
|
+
* arrives next either completes it (a docstring's first line, ending in
|
|
857
|
+
* ` ... <outcome>`) or does not, and either way the header is then
|
|
858
|
+
* discarded -- never left pending indefinitely waiting for a continuation
|
|
859
|
+
* that a stray print from the test body or an unrecognised outcome word
|
|
860
|
+
* might otherwise be mistaken for. A line the parser cannot place at all
|
|
861
|
+
* (the `======`/`----` banners, a traceback body, `Ran N tests...`, `OK`,
|
|
862
|
+
* `FAILED (...)`, or the test process's own stdout) is silently ignored --
|
|
863
|
+
* the same "unparseable output is ordinary and expected" rule every
|
|
864
|
+
* NDJSON-based profile already applies to its own noise.
|
|
865
|
+
*
|
|
866
|
+
* **What this deliberately does not attempt.** unittest's per-test line
|
|
867
|
+
* carries a qualified name only, never a file or line number -- those
|
|
868
|
+
* appear solely in the traceback section printed after every test in the
|
|
869
|
+
* run has already finished, under a `======`-delimited header repeating the
|
|
870
|
+
* test's own description. Re-associating that traceback with the correct
|
|
871
|
+
* earlier result, reliably, across a run with many tests (some sharing a
|
|
872
|
+
* class or method name across modules), is exactly the kind of inference
|
|
873
|
+
* precision-over-recall exists to forbid -- so no attempt is made, every
|
|
874
|
+
* `sourceLocation` this parser produces is null, and every FAILED/ERROR
|
|
875
|
+
* carries no `error` detail either, rather than one guessed from prose.
|
|
876
|
+
* `expected failure`/`unexpected success` fold into `TEST_SKIPPED`/
|
|
877
|
+
* `TEST_PASSED` respectively -- the same choice the pytest reporter already
|
|
878
|
+
* made for `xfail`/`xpass`, not a new one invented here. An outcome word
|
|
879
|
+
* this parser has never measured (a future CPython addition) still gets a
|
|
880
|
+
* `TEST_STARTED` -- the test did start -- but no paired result, on the same
|
|
881
|
+
* "report nothing rather than guess" rule.
|
|
882
|
+
*/
|
|
883
|
+
export function createUnittestResultParser() {
|
|
884
|
+
let pendingHeader = null;
|
|
885
|
+
function eventsFor(header, outcome) {
|
|
886
|
+
const start = { type: "test:start", data: { name: header.name, qualifiedName: header.qualifiedName } };
|
|
887
|
+
const skipReason = unittestSkipReason(outcome);
|
|
888
|
+
if (skipReason !== null) {
|
|
889
|
+
return [start, { type: "test:pass", data: { name: header.name, qualifiedName: header.qualifiedName, skip: true, skipReason } }];
|
|
890
|
+
}
|
|
891
|
+
if (outcome === "ok" || outcome === "unexpected success") {
|
|
892
|
+
return [start, { type: "test:pass", data: { name: header.name, qualifiedName: header.qualifiedName } }];
|
|
893
|
+
}
|
|
894
|
+
if (outcome === "FAIL" || outcome === "ERROR") {
|
|
895
|
+
return [start, { type: "test:fail", data: { name: header.name, qualifiedName: header.qualifiedName } }];
|
|
896
|
+
}
|
|
897
|
+
return [start];
|
|
898
|
+
}
|
|
899
|
+
return {
|
|
900
|
+
feed(line) {
|
|
901
|
+
const direct = UNITTEST_RESULT_LINE.exec(line);
|
|
902
|
+
if (direct !== null) {
|
|
903
|
+
pendingHeader = null;
|
|
904
|
+
const [, name, qualifiedName, outcome] = direct;
|
|
905
|
+
return eventsFor({ name: name, qualifiedName: qualifiedName }, outcome);
|
|
906
|
+
}
|
|
907
|
+
if (pendingHeader !== null) {
|
|
908
|
+
// One line of lookahead only -- consumed here whether or not it
|
|
909
|
+
// actually completes the pending header, so a header that never
|
|
910
|
+
// gets its continuation cannot swallow an unrelated later line.
|
|
911
|
+
const header = pendingHeader;
|
|
912
|
+
pendingHeader = null;
|
|
913
|
+
const continuation = UNITTEST_CONTINUATION_LINE.exec(line);
|
|
914
|
+
if (continuation !== null) {
|
|
915
|
+
return eventsFor(header, continuation[1]);
|
|
916
|
+
}
|
|
917
|
+
// Falls through: this same line might still be the NEXT test's own
|
|
918
|
+
// header-only line rather than junk, so it still gets checked below.
|
|
919
|
+
}
|
|
920
|
+
const headerOnly = UNITTEST_HEADER_ONLY_LINE.exec(line);
|
|
921
|
+
if (headerOnly !== null) {
|
|
922
|
+
const [, name, qualifiedName] = headerOnly;
|
|
923
|
+
pendingHeader = { name: name, qualifiedName: qualifiedName };
|
|
924
|
+
return [];
|
|
925
|
+
}
|
|
926
|
+
return [];
|
|
927
|
+
},
|
|
928
|
+
};
|
|
929
|
+
}
|
|
663
930
|
export function createEventTranslator(emit, service, processId) {
|
|
664
931
|
let pending = null;
|
|
665
932
|
let testsObserved = 0;
|
|
@@ -945,44 +1212,57 @@ export function createTestRunnerCollector(options) {
|
|
|
945
1212
|
sourceLocation: null,
|
|
946
1213
|
});
|
|
947
1214
|
};
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
1215
|
+
// **unittest never speaks the NDJSON envelope** (see this file's own
|
|
1216
|
+
// top doc comment): there is no reporter to gate, only a text parser.
|
|
1217
|
+
// Every other profile shares the one JSON-envelope path below.
|
|
1218
|
+
const onLine = discovery.kind === "unittest"
|
|
1219
|
+
? (() => {
|
|
1220
|
+
const unittestParser = createUnittestResultParser();
|
|
1221
|
+
return (line) => {
|
|
1222
|
+
for (const event of unittestParser.feed(line)) {
|
|
1223
|
+
activeTranslator.handle(event);
|
|
1224
|
+
}
|
|
1225
|
+
};
|
|
1226
|
+
})()
|
|
1227
|
+
: (line) => {
|
|
1228
|
+
if (line.trim() === "")
|
|
1229
|
+
return;
|
|
1230
|
+
let parsed;
|
|
1231
|
+
try {
|
|
1232
|
+
parsed = JSON.parse(line);
|
|
1233
|
+
}
|
|
1234
|
+
catch {
|
|
1235
|
+
// A non-JSON line on stdout means something other than this
|
|
1236
|
+
// collector's own reporter wrote it (e.g. the process under
|
|
1237
|
+
// test's own console.log) -- ignored rather than treated as a
|
|
1238
|
+
// parse failure of the reporter stream itself, which is a real,
|
|
1239
|
+
// expected, ordinary case for any real test suite.
|
|
1240
|
+
return;
|
|
1241
|
+
}
|
|
1242
|
+
// **The handshake, checked before anything is believed.** A
|
|
1243
|
+
// reporter declares which envelope it speaks; a mismatch, or an
|
|
1244
|
+
// event arriving with no declaration at all, means what follows
|
|
1245
|
+
// cannot be trusted to mean what this translator will read it as.
|
|
1246
|
+
// COLLECTOR_ERROR and then silence, never confident wrong evidence.
|
|
1247
|
+
// The gate sees every line, not only translatable ones: a
|
|
1248
|
+
// handshake is not a `NodeTestEvent` and would otherwise be
|
|
1249
|
+
// dropped as noise before it could be read.
|
|
1250
|
+
if (!isNodeTestEvent(parsed)) {
|
|
1251
|
+
const noise = gate.inspect(parsed, false);
|
|
1252
|
+
if (noise.kind === "refuse")
|
|
1253
|
+
reportEnvelopeError(noise.reason);
|
|
1254
|
+
return;
|
|
1255
|
+
}
|
|
1256
|
+
const verdict = gate.inspect(parsed, true);
|
|
1257
|
+
if (verdict.kind === "refuse") {
|
|
1258
|
+
reportEnvelopeError(verdict.reason);
|
|
1259
|
+
return;
|
|
1260
|
+
}
|
|
1261
|
+
if (verdict.kind !== "event")
|
|
1262
|
+
return;
|
|
1263
|
+
activeTranslator.handle(parsed);
|
|
1264
|
+
};
|
|
1265
|
+
completion = pumpLines(managed, onLine).then(() => {
|
|
986
1266
|
// The very last test's result has no "next test:start" or
|
|
987
1267
|
// no-`file` diagnostic to flush it -- node's own suite-level
|
|
988
1268
|
// summary diagnostics almost always follow, but relying on that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runner-collector.js","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-runner-collector.js","sourceRoot":"","sources":["../src/test-runner-collector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descryy/runtime-test-runner",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Test-runner observation (plan \u00a717): discovery, start, TEST_STARTED/PASSED/FAILED, trace capture, source mapping, not-run disclosure. Three runners -- node:test, Jest, Vitest -- each observed through its own structured reporter API writing one shared envelope; no TAP or text scraping anywhere.",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@descryy/runtime-contracts": "0.2.0",
|
|
28
28
|
"@descryy/runtime-backend-observation": "0.2.0",
|
|
29
|
-
"@descryy/runtime-controller": "0.2.
|
|
30
|
-
"@descryy/runtime-graph-correlator": "0.
|
|
31
|
-
"@descryy/core": "0.
|
|
29
|
+
"@descryy/runtime-controller": "0.2.1",
|
|
30
|
+
"@descryy/runtime-graph-correlator": "0.3.0",
|
|
31
|
+
"@descryy/core": "0.4.0"
|
|
32
32
|
}
|
|
33
33
|
}
|