test(client): skip the 3D character compositor suite while 3D is not in play

Jeroen's call during the Phase-4 Atlas work: nothing in this suite's subject
is being changed, and it is by a wide margin the most expensive thing in the
client suite. Client run drops from 135s to 96s — 29% — from this one file.

The numbers, measured across all 86 suites:
  this suite     50.0s /   26 tests  (~1.9s each)  -> 37% of the whole run
  all 86 suites 127.1s / 1830 tests
  the other 78   ~33s  / 1804 tests
Every test instantiates a fresh CharacterVisual Node3D and loads the skeleton
.glb plus body and skin-tone assets, so the cost is asset loading per test,
not assertion count. The rest of the suite is close to free.

Used gdUnit4's own suite-skip (__is_skipped) rather than a hardcoded pass, as
requested but one level more honest: a test that returns success without
exercising anything reports as COVERAGE. It inflates the pass count and reads,
to anyone scanning a summary, exactly like a suite that ran and was fine.
The skip reports these 26 as SKIPPED in the statistics — and run-godot now
parses that field and excludes it from passed — so the omission stays visible
in every run rather than being laundered into a green number. It also
short-circuits before the test bodies, so the 50s is genuinely reclaimed
rather than merely hidden.

No test was modified. Deleting the _init() restores the suite exactly as it
was, and the comment says so, along with when to do it (Phase 5 player
rendering at the latest) and the better fix to prefer then — sharing the
compositor instead of rebuilding it per test.

Pair session with Jeroen, 2026-07-27.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-27 00:57:15 +02:00
co-authored by Claude
parent 263a98f3ed
commit 791600dd24
@@ -21,6 +21,43 @@
class_name TestCharacterVisualSprint28
extends GdUnitTestSuite
## ============================================================================
## SKIPPED 2026-07-27 — 3D character representation is not under active work.
## ============================================================================
##
## Jeroen's call, during the Phase-4 Atlas work: nothing in this suite's subject
## (the CharacterVisual 3D compositor) is being changed, and it is by a wide
## margin the most expensive thing in the client suite.
##
## THE NUMBERS, measured 2026-07-27 across all 86 suites:
## this suite 50.0s / 26 tests (~1.9s per test) <- 37% of the whole run
## all 86 suites 127.1s / 3660 tests
## the other 78 ~33s / 3450 tests
## Every test here instantiates a fresh CharacterVisual Node3D and loads the
## skeleton .glb plus body/skin-tone assets, so the cost is asset loading per
## test, not assertion count.
##
## WHY `__is_skipped` AND NOT A HARDCODED PASS. A test that returns success
## without exercising anything reports as COVERAGE — it inflates the pass count
## and reads, to anyone scanning the summary, exactly like a suite that ran and
## was fine. gdUnit4's own suite-skip reports these 26 as SKIPPED in the
## statistics line instead, so the number stays honest and the omission stays
## visible in every run. It also short-circuits before before()/the test bodies
## (GdUnitTestSuiteExecutionStage: `if __is_skipped: fire_test_suite_skipped`),
## so the 50s is genuinely reclaimed rather than merely hidden.
##
## TO RE-ENABLE: delete this `_init()`. Nothing else was changed — every test
## below is intact and was passing when skipped. Do that the moment 3D
## character work resumes (Phase 5 player rendering at the latest), and prefer
## fixing the per-test compositor rebuild over leaving it skipped for cost.
func _init() -> void:
__is_skipped = true
__skip_reason = (
"3D character representation is not under active development"
+ " (skipped 2026-07-27, ~50s of the client suite; delete _init() to restore)"
)
const COMPOSITOR_PATH := "res://scripts/rendering/character_visual.gd"
const SKIN_TONES_DIR := "res://assets/characters/skin_tones/"
const BODIES_DIR := "res://assets/characters/bodies/"